Skip to content

team-update cron dirties a tracked file hourly, blocking afx spawn's clean-worktree check #1675

Description

@amrmelsayed

Symptom

tower-cron's team-update task appends its hourly event line to codev/team/messages.md — a tracked file in the main checkout. Every eventful hour re-dirties the worktree, and the pre-spawn dirty-check then blocks every afx spawn until someone hand-commits a cron log line (hit twice on 2026-09-11: the #1668 spawn was refused on the 03:00 append; the 10:00 tick re-dirtied the tree minutes after it was committed).

Tension

The team feed is versioned by design (it ships in the repo), but a daemon writing to tracked files in the developer's checkout means the workspace can never stay clean, and the entity creating the dirt (cron) is not the entity the guard asks to resolve it (the human/architect mid-spawn).

Options (lane's judgment)

  1. Feed becomes append-through-Tower: cron posts to global.db (like mailbox rows); codev/team/messages.md is materialized/committed deliberately (e.g. by team update run by a human, or at release time). Matches the state-lives-in-DB invariant.
  2. Spawn guard exempts the feed path (smallest change; leaves the perpetual-dirt annoyance and weakens the guard).
  3. Cron auto-commits its own appends (a daemon committing to main — against the workspace's commit conventions; listed for completeness, not recommended).

Option 1 fits existing architecture best. Related: #1660 (only-post-when-events, which reduced but cannot eliminate the frequency), #1662 (content quality).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/towerArea: Tower server / agent farm CLI

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions