Archive completed tasks, add cleanup commands, self-documenting dashboard UI
CI / build (push) Has been cancelled
CI / build (push) Has been cancelled
- 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
This commit is contained in:
@@ -0,0 +1 @@
|
||||
complete
|
||||
@@ -0,0 +1,14 @@
|
||||
# Adversarial Bug Report — plug-stale-task-hole
|
||||
|
||||
## Attack Vectors
|
||||
1. **Clock reset bypass**: Can an attacker manipulate the activity clock to bypass stale detection?
|
||||
2. **False positives**: Can legitimate activity be misclassified as stale?
|
||||
3. **Race condition**: What happens if --touch and --can-edit race on the task's timestamp?
|
||||
|
||||
## Findings
|
||||
- The activity clock uses filesystem mtime, which IS manipulable by `touch` — but this is by design (the `--touch` command is the official way to reset)
|
||||
- The 30-minute threshold gives reasonable headroom for long-running work
|
||||
- Race conditions are minimal since status.py uses atomic file operations
|
||||
|
||||
## Verdict
|
||||
No exploitable vulnerabilities found.
|
||||
@@ -0,0 +1,16 @@
|
||||
# Bug Report — plug-stale-task-hole
|
||||
|
||||
## Review Scope
|
||||
status.py --touch command, guard plugin stale detection, task.py stale awareness, test coverage.
|
||||
|
||||
## Findings
|
||||
|
||||
### No Critical Bugs Found
|
||||
The `--touch` command properly resets the activity clock by updating the task's mtime or recording a timestamp. The guard plugin correctly parses `stale_task` and `stale_minutes` from the JSON response. Tests cover the stale detection and touch reset flows.
|
||||
|
||||
### Minor Observations
|
||||
- The stale detection threshold (30 minutes) is hardcoded rather than configurable
|
||||
- The guard plugin only checks stale status for the current task, not across all tasks
|
||||
|
||||
## Verdict
|
||||
No blocking bugs. Ready for adversarial review.
|
||||
@@ -0,0 +1,12 @@
|
||||
# Doc Review — plug-stale-task-hole
|
||||
|
||||
## Documentation Reviewed
|
||||
- IMPLEMENTATION.md (task folder)
|
||||
- SPEC.md
|
||||
- status.py --help or --touch documentation (if any)
|
||||
|
||||
## Findings
|
||||
Documentation is accurate. The IMPLEMENTATION.md covers all changed files. The SPEC.md goal ("Add stale-task detection, --touch command, update guard plugin") is fully met. The `--touch` command is self-documenting via its usage in error messages.
|
||||
|
||||
## Verdict
|
||||
Documentation is satisfactory. No changes needed.
|
||||
@@ -0,0 +1,22 @@
|
||||
# Plug Stale Task Hole Implementation
|
||||
|
||||
## Summary
|
||||
Added stale-task detection, `--touch` command in status.py, and updated guard plugins to block edits on stale tasks.
|
||||
|
||||
## Changes
|
||||
|
||||
### scripts/status.py
|
||||
- Added `--touch` command that resets the activity clock on a task
|
||||
- Stale detection: tasks in edit-allowed phases >30 minutes are considered stale
|
||||
- `--can-edit` returns `stale_task` reason when a task is stale
|
||||
- Added `stale_task` and `stale_minutes` to JSON output
|
||||
|
||||
### plugins/automaton-guard/plugin.ts
|
||||
- Added stale task detection: if `--can-edit` returns `stale_task` reason, the guard blocks with a message suggesting `--touch` or new task creation
|
||||
- Parses `staleTask` and `staleMinutes` from JSON response
|
||||
|
||||
### automaton/dashboard/core/task.py
|
||||
- Added stale task awareness in the dashboard
|
||||
|
||||
### tests/test_task.py
|
||||
- Added tests for stale task detection and touch functionality
|
||||
@@ -0,0 +1 @@
|
||||
# Plug Stale Task Hole\n\nAdd stale-task detection, --touch command, update guard plugin.
|
||||
@@ -0,0 +1,13 @@
|
||||
# Verdict — plug-stale-task-hole
|
||||
|
||||
## Status: PASS
|
||||
|
||||
## Summary
|
||||
All phases completed successfully:
|
||||
1. **Implement**: Added --touch command in status.py, stale detection in guard plugin, stale awareness in dashboard
|
||||
2. **Bug Find**: No critical bugs found
|
||||
3. **Adversarial Bug Find**: No security vulnerabilities found
|
||||
4. **Doc Review**: Documentation accurate and complete
|
||||
|
||||
## Final Assessment
|
||||
Task satisfies all SPEC.md requirements. Marking complete.
|
||||
Reference in New Issue
Block a user