Files
automaton/tasks/complete/fix-stale-task-mtime-proxy/CODE_REVIEW.md
T
Lap Tran 4a2301b077
CI / build (push) Has been cancelled
Archive completed tasks, add cleanup commands, self-documenting dashboard UI
- Archive 79 completed framework-dev tasks from tasks/ -> tasks/complete/
- status.py: add --cleanup-done and --install-cleanup-schedule commands
- Add scripts/automaton-cleanup.sh for periodic task archiving
- Dashboard: rename 'Background' tab -> 'Agent', 'Cleanup' agent -> 'Completed Task Archiver', remove redundant group headers and pill badges, dim inactive agent placeholders
- .rules.md: add Self-Documenting UI Names rule
- New tests: test_cleanup_done.py, expanded test_app.py and test_task.py
2026-06-24 22:43:33 -04:00

1.4 KiB

Code Review: fix-stale-task-mtime-proxy

Reviewed Files

  • scripts/status.py (_get_edit_timestamp(), _touch_lastedit(), cmd_can_edit(), cmd_same_session(), cmd_touch(), NON_ARTIFACT_FILES)

Changes

  1. Added .state.lastedit file as the stale-task timer source
  2. _touch_lastedit() called on ALLOWED --can-edit responses
  3. _get_edit_timestamp() reads .state.lastedit with fallback to .state mtime
  4. Added staleness check to single-task --can-edit --task path
  5. --touch now touches .state.lastedit instead of .state

Analysis

  • Correctness: Using .state.lastedit (touched on actual edit activity) is a better proxy for staleness than .state mtime (which only reflects phase transitions)
  • Backward compatibility: Falls back to .state mtime when .state.lastedit doesn't exist
  • Non-artifact: .state.lastedit correctly added to NON_ARTIFACT_FILES to avoid being treated as a phase artifact
  • Single-task path: Adding staleness check to --can-edit --task makes enforcement consistent across both code paths
  • --touch command: Updated to touch .state.lastedit — consistent with the new activity tracking model

Verdict: PASS

The fix is well-structured, maintains backward compatibility, and correctly addresses the mtime proxy issue. Tests cover creation, staleness detection, and fallback behavior.