Age signal for the temporary tier: commit-age vs mtime for untracked artifacts #48
Labels
No Label
P0
P1
P2
P3
afk-ready
hitl
next
ready-for-agent
review
semi
waiting
wayfinder:grilling
wayfinder:map
wayfinder:research
wayfinder:task
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: jared/cc-os#48
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Map: #31
Blocked by: (none)
Question
#43 fixed the temporary tier as
retain_recent: 3+max_age_days: 3measured on git-commit age. But the clearest clutter in the #45 answer key —autoresearch/<run-id>/— is untracked/gitignored and therefore HAS no commit age, so a commit-age-keyed rule can never fire on it. Same likely applies to other generated-but-untracked trees.Does the temporary tier need a second age signal (mtime) for untracked paths, a per-rule
age_sourcefield, or a different measure entirely? Whatever this concludes either amends or supersedes #43 — record it (ADR if it changes the rulebook schema from #40).Note the user's stated preference: mtime is simple and sufficient; parsing timestamps out of directory names (
260703inclassic-260703-1522) is overly complex by comparison.RESOLUTION: #43's age-signal decision stands unamended — this ticket sharpens one definition rather than superseding anything.
The premise was a misread. #43 point 5 already specifies the fallback: age = git commit time, falling back to filesystem mtime for untracked files. mtime-alone was rejected there because clone/branch-switch resets mtimes — an objection that does not apply to the fallback, since untracked files don't exist in a fresh clone and checkouts don't rewrite them. So untracked artifacts (autoresearch runs, scratch notes) are covered, and no per-rule age_source field is needed.
Sharpened definition — directory-entry mtime. For a directory-rule entry that is untracked (e.g. autoresearch/improve-260710-1057/), its mtime is the directory inode's own mtime (one stat), NOT a recursive max-mtime walk. Rationale: the temporary tier's failure mode is self-healing — a spuriously bumped mtime merely delays deletion one round — so the cheap signal suffices. Decided with the user (option A).
No rulebook schema change (#40 untouched), so no ADR needed. #46 should fold the sharpened definition into the spec's temporary-tier section.
jared referenced this issue2026-07-14 19:58:51 +00:00