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
15 lines
702 B
Markdown
15 lines
702 B
Markdown
# 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.
|