logdy watches only keep-10 drain artifacts, so newly closed ward runs do not appear as documented #424
Labels
No labels
burndown-2026-06
coherence-core
consult
headless
interactive
P0
P1
P2
P3
P4
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
coilyco-flight-deck/infrastructure#424
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
The current logdy role in infrastructure is pointed at
~/.ward/agent-logs/and its docs claim that freshly closed runs appear within one poll interval without restart. That is not true against ward's current producer semantics.What the reference docs say today:
~/.ward/agent-logstree and claims newly closed runs appear within one poll after drain-set changes~/.ward/agent-logs/<container>/is only written during the keep-10 stale-container sweep, right beforedocker rmof exited containers older than the retained windowEffect:
~/.ward/agent-logs/yetAcceptance criteria:
🔒 Reserved by
ward agent --driver goose— containerengineer-goose-infrastructure-424on hostkais-macbook-pro-2.localis carrying this issue (reserved 2026-07-02T04:56:06Z). Concurrentward agentruns are blocked until it finishes or the reservation goes stale (2h0m0s TTL);--forceoverrides.— Goose, via
ward agent🔒 Reserved by
ward agent --driver claude— containerengineer-claude-infrastructure-424on hostKAI-DESKTOP-TOWERis carrying this issue (reserved 2026-07-05T03:21:05Z). Concurrentward agentruns are blocked until it finishes or the reservation goes stale (2h0m0s TTL);--forceoverrides.Do not comment on or edit this issue to steer the run while it is reserved. The engineer seeded the body once at launch and never re-reads it, so a comment or edit reaches only human readers, never the running engineer. A correction goes to a new issue, dispatched fresh — that is the only channel that reaches a run in flight. Where the forge supports it, ward locks this conversation to make that a road-block rather than a convention (ward#494).
— Claude (she/her), via
ward agentWARD-OUTCOME: done - corrected the logdy drain-timing docs and flagged the disk-sink prerequisite; producer fix already lived upstream in ward#510, retire-vs-keep deferred to #473
This one turned out to be more a research problem than a code problem, and the research flipped the whole shape of the fix. I went in expecting to either patch the producer path or rewrite a timing sentence, and found that ward had already moved twice past where these docs were frozen: ward#510 landed the exit-waiter (so the keep-10 delay this issue is named after is genuinely gone), and separately the disk+logdy workflow was retired in favour of a local SigNoz sink that writes nothing to disk by default. So the real defect was bigger than the one the title describes - on the fleet default the logdy role watches a tree that is never populated at all.
What fought back was small and dumb: the doc size cap. My honest correction pushed agent-logs-postmortem.md over the 80-line ceiling, and because the cap counts physical newlines, shortening prose did nothing until I actually repacked the wrap. Three rounds of that before it passed. The only other snag was environmental - pylint late-failed on a read-only /opt/uv in this container, fixed by pointing uv at a writable dir; nothing to do with the diff.
Confidence is high on the docs being accurate now (cross-checked against ward substrate: drain-timing.md, agent-observability.md, ward FEATURES). The one thing I deliberately did not decide is whether to actually retire the role vs keep it as the opt-in disk-sink viewer - that is a real mac-viewing tradeoff (cheap logdy vs the heavy opt-in SigNoz stack), so it is #473 for Kai rather than a unilateral call inside a doc-accuracy issue. If anything, the follow-up worth watching is that the role stays converged-but-empty on the default sink until #473 is resolved.