feat: add broker logs surface #987
Closed
coilyco-ops
wants to merge 1 commit from
issue-927 into main
pull from: issue-927
merge into: coilyco-flight-deck:main
coilyco-flight-deck:main
coilyco-flight-deck:issue-1443
coilyco-flight-deck:issue-1283
coilyco-flight-deck:issue-1447
coilyco-flight-deck:issue-1301
coilyco-flight-deck:release
coilyco-flight-deck:issue-1166
coilyco-flight-deck:issue-1139
coilyco-flight-deck:issue-1307
coilyco-flight-deck:issue-1308
coilyco-flight-deck:issue-1309
coilyco-flight-deck:issue-1435
coilyco-flight-deck:issue-1430
coilyco-flight-deck:issue-1428
coilyco-flight-deck:issue-1388
coilyco-flight-deck:issue-1420
coilyco-flight-deck:issue-1422
coilyco-flight-deck:issue-1423
coilyco-flight-deck:issue-1417
coilyco-flight-deck:issue-1408
coilyco-flight-deck:issue-1335
coilyco-flight-deck:issue-1412
coilyco-flight-deck:issue-1411
coilyco-flight-deck:issue-1402
coilyco-flight-deck:issue-1403
coilyco-flight-deck:issue-1402-scoop-best-effort
coilyco-flight-deck:issue-1336
coilyco-flight-deck:issue-1334
coilyco-flight-deck:issue-1393
coilyco-flight-deck:issue-1338
coilyco-flight-deck:issue-1397
coilyco-flight-deck:issue-1392
coilyco-flight-deck:issue-1339
coilyco-flight-deck:issue-1340
coilyco-flight-deck:issue-1300
coilyco-flight-deck:issue-1288
coilyco-flight-deck:issue-1304
coilyco-flight-deck:issue-1270
coilyco-flight-deck:issue-1381
coilyco-flight-deck:issue-1244
coilyco-flight-deck:issue-1227
coilyco-flight-deck:issue-1380
coilyco-flight-deck:issue-996
coilyco-flight-deck:issue-1016
coilyco-flight-deck:issue-1375
coilyco-flight-deck:issue-1371
coilyco-flight-deck:issue-1372
coilyco-flight-deck:issue-1370
coilyco-flight-deck:issue-1364
coilyco-flight-deck:issue-1175
coilyco-flight-deck:issue-1234
coilyco-flight-deck:issue-1360
coilyco-flight-deck:issue-1358
coilyco-flight-deck:issue-1353
coilyco-flight-deck:issue-1242
coilyco-flight-deck:issue-1346
coilyco-flight-deck:issue-1347
coilyco-flight-deck:issue-1342
coilyco-flight-deck:issue-1321
coilyco-flight-deck:issue-1073-rebased
coilyco-flight-deck:issue-1237-friction-events
coilyco-flight-deck:issue-1320
coilyco-flight-deck:issue-1344
coilyco-flight-deck:issue-1073
coilyco-flight-deck:issue-1275
coilyco-flight-deck:issue-1332-replacement
coilyco-flight-deck:issue-1296
coilyco-flight-deck:issue-1330-replacement
coilyco-flight-deck:issue-1224-rebased
coilyco-flight-deck:issue-1323
coilyco-flight-deck:issue-993
coilyco-flight-deck:issue-1243
coilyco-flight-deck:issue-871
coilyco-flight-deck:issue-1298
coilyco-flight-deck:issue-1315
coilyco-flight-deck:issue-1312
coilyco-flight-deck:issue-1314
coilyco-flight-deck:issue-1313
coilyco-flight-deck:issue-1310
coilyco-flight-deck:issue-1282
coilyco-flight-deck:issue-1224
coilyco-flight-deck:issue-1173
coilyco-flight-deck:issue-1000
coilyco-flight-deck:issue-1007
coilyco-flight-deck:issue-1281
coilyco-flight-deck:issue-1011
coilyco-flight-deck:issue-1006-recovery-note
coilyco-flight-deck:issue-998
coilyco-flight-deck:issue-1221
coilyco-flight-deck:issue-1240
coilyco-flight-deck:issue-1170
coilyco-flight-deck:issue-1239
coilyco-flight-deck:issue-1172
coilyco-flight-deck:issue-1168
coilyco-flight-deck:issue-1174
coilyco-flight-deck:issue-1201
coilyco-flight-deck:issue-1112
coilyco-flight-deck:issue-1179
coilyco-flight-deck:issue-1246
coilyco-flight-deck:issue-1247
coilyco-flight-deck:issue-1245
coilyco-flight-deck:issue-1050
coilyco-flight-deck:issue-1105
coilyco-flight-deck:issue-1041
coilyco-flight-deck:issue-1120
coilyco-flight-deck:issue-1197
coilyco-flight-deck:issue-1111
coilyco-flight-deck:issue-1225
coilyco-flight-deck:issue-1196
coilyco-flight-deck:issue-1171
coilyco-flight-deck:issue-1194
coilyco-flight-deck:issue-1203
coilyco-flight-deck:issue-1198
coilyco-flight-deck:issue-1202
coilyco-flight-deck:issue-1200
coilyco-flight-deck:issue-1213
coilyco-flight-deck:issue-1205
coilyco-flight-deck:issue-1207
coilyco-flight-deck:issue-1209
coilyco-flight-deck:issue-1206
coilyco-flight-deck:issue-1195
coilyco-flight-deck:issue-1191
coilyco-flight-deck:issue-1188
coilyco-flight-deck:issue-1180
coilyco-flight-deck:issue-1147
coilyco-flight-deck:issue-1149
coilyco-flight-deck:issue-1134
coilyco-flight-deck:issue-1143
coilyco-flight-deck:issue-1145
coilyco-flight-deck:issue-1140
coilyco-flight-deck:issue-1094
coilyco-flight-deck:issue-1129
coilyco-flight-deck:issue-1142
coilyco-flight-deck:stash/agentic-os-image-default-rename
coilyco-flight-deck:fix/test-env-isolation
coilyco-flight-deck:docs/features-two-stage-release
coilyco-flight-deck:fix/promote-server-scheme
coilyco-flight-deck:fix/smartdefaults-error-source
coilyco-flight-deck:feat/two-stage-release
coilyco-flight-deck:issue-1086
coilyco-flight-deck:fix/placeholder-sentinels
coilyco-flight-deck:fix/migrate-off-cli-guard-dispatch
coilyco-flight-deck:fix/test-yml-duplicate-main-gate
coilyco-flight-deck:issue-1014-landing-fix
coilyco-flight-deck:issue-911-pr
coilyco-flight-deck:issue-1109
coilyco-flight-deck:issue-1008
coilyco-flight-deck:issue-999
coilyco-flight-deck:issue-861
coilyco-flight-deck:issue-1074
coilyco-flight-deck:issue-1076
coilyco-flight-deck:issue-1049
coilyco-flight-deck:issue-1039
coilyco-flight-deck:issue-994
coilyco-flight-deck:issue-991
coilyco-flight-deck:issue-1020
coilyco-flight-deck:issue-1067
coilyco-flight-deck:issue-913
coilyco-flight-deck:issue-982
coilyco-flight-deck:issue-1034
coilyco-flight-deck:issue-1005
coilyco-flight-deck:issue-1031
coilyco-flight-deck:issue-990
coilyco-flight-deck:issue-1062
coilyco-flight-deck:issue-995
coilyco-flight-deck:issue-1057
coilyco-flight-deck:issue-905
coilyco-flight-deck:issue-911
coilyco-flight-deck:issue-1042
coilyco-flight-deck:issue-1021
coilyco-flight-deck:issue-1009
coilyco-flight-deck:issue-1014
coilyco-flight-deck:issue-1001
coilyco-flight-deck:issue-978
coilyco-flight-deck:issue-985
coilyco-flight-deck:issue-950
coilyco-flight-deck:issue-979
coilyco-flight-deck:issue-977
coilyco-flight-deck:issue-971
coilyco-flight-deck:issue-935
coilyco-flight-deck:issue-970
coilyco-flight-deck:issue-969
coilyco-flight-deck:issue-956
coilyco-flight-deck:issue-965
coilyco-flight-deck:issue-964
coilyco-flight-deck:issue-962-restore-readme
coilyco-flight-deck:issue-951
coilyco-flight-deck:issue-958-container-config-guard
coilyco-flight-deck:issue-704
coilyco-flight-deck:issue-697
coilyco-flight-deck:issue-896
coilyco-flight-deck:issue-885
coilyco-flight-deck:issue-876
coilyco-flight-deck:issue-895
coilyco-flight-deck:issue-893
coilyco-flight-deck:issue-940
coilyco-flight-deck:issue-923
coilyco-flight-deck:issue-942
coilyco-flight-deck:issue-952
coilyco-flight-deck:issue-952-director
coilyco-flight-deck:issue-936
coilyco-flight-deck:issue-937
coilyco-flight-deck:issue-931
coilyco-flight-deck:issue-924
coilyco-flight-deck:issue-920
coilyco-flight-deck:issue-635
coilyco-flight-deck:issue-903
coilyco-flight-deck:issue-892
coilyco-flight-deck:issue-874
coilyco-flight-deck:issue-879
coilyco-flight-deck:issue-890
coilyco-flight-deck:issue-910
coilyco-flight-deck:issue-875
coilyco-flight-deck:issue-897
coilyco-flight-deck:issue-894
coilyco-flight-deck:issue-637
coilyco-flight-deck:issue-842
coilyco-flight-deck:issue-834
coilyco-flight-deck:issue-860
coilyco-flight-deck:issue-541
coilyco-flight-deck:issue-723
coilyco-flight-deck:issue-830-github-authoritative
coilyco-flight-deck:issue-853
coilyco-flight-deck:issue-634
coilyco-flight-deck:issue-845
coilyco-flight-deck:issue-846
coilyco-flight-deck:issue-843
coilyco-flight-deck:issue-496
coilyco-flight-deck:issue-832
coilyco-flight-deck:issue-777
coilyco-flight-deck:issue-778
coilyco-flight-deck:issue-836
coilyco-flight-deck:issue-700
coilyco-flight-deck:issue-695
coilyco-flight-deck:issue-124-share-parser
coilyco-flight-deck:issue-671
coilyco-flight-deck:issue-722
coilyco-flight-deck:issue-694
coilyco-flight-deck:issue-824
coilyco-flight-deck:issue-640
coilyco-flight-deck:issue-735
coilyco-flight-deck:issue-641
coilyco-flight-deck:issue-642
coilyco-flight-deck:issue-818
coilyco-flight-deck:issue-812
coilyco-flight-deck:issue-733-clean
coilyco-flight-deck:issue-804
coilyco-flight-deck:issue-805
coilyco-flight-deck:issue-803
coilyco-flight-deck:issue-735-remove-director-consult
coilyco-flight-deck:issue-797
coilyco-flight-deck:issue-801
coilyco-flight-deck:issue-795
coilyco-flight-deck:issue-791
coilyco-flight-deck:issue-790
coilyco-flight-deck:issue-787
coilyco-flight-deck:issue-780
coilyco-flight-deck:issue-737-defer-signoz
coilyco-flight-deck:issue-732
coilyco-flight-deck:issue-737-signoz-deferred
coilyco-flight-deck:issue-734
coilyco-flight-deck:issue-736
coilyco-flight-deck:issue-744
coilyco-flight-deck:issue-769
coilyco-flight-deck:issue-767
coilyco-flight-deck:issue-760
coilyco-flight-deck:issue-763
coilyco-flight-deck:ward-salvage/ward-c6aa5da9
coilyco-flight-deck:ward-salvage/ward-94dd7346
coilyco-flight-deck:issue-729
coilyco-flight-deck:ward-salvage/ward-58aa3fe3
coilyco-flight-deck:issue-733
coilyco-flight-deck:ward-salvage/ward-ff6c509f
coilyco-flight-deck:ward-salvage/ward-e80f0460
coilyco-flight-deck:issue-737
coilyco-flight-deck:ward-salvage/ward-3e2e4760
coilyco-flight-deck:issue-731
coilyco-flight-deck:ward-salvage/ward-649addd7
coilyco-flight-deck:ward-salvage/ward-890e4d29
coilyco-flight-deck:ward-salvage/ward-645b750b
coilyco-flight-deck:ward-salvage/ward-bf851a72
coilyco-flight-deck:ward-salvage/ward-98c8652f
coilyco-flight-deck:ward-salvage/ward-bb10b620
coilyco-flight-deck:issue-724
coilyco-flight-deck:ward-salvage/ward-1ee9be1c
coilyco-flight-deck:ward-salvage/ward-d18595f6
coilyco-flight-deck:issue-124
coilyco-flight-deck:ward-salvage/ward-5f914692
coilyco-flight-deck:ward-salvage/ward-6ca05cbd
coilyco-flight-deck:ward-salvage/ward-14f676cf
coilyco-flight-deck:ward-salvage/ward-de811c20
coilyco-flight-deck:ward-salvage/ward-eba3e824
coilyco-flight-deck:ward-salvage/ward-16eb4ad0
coilyco-flight-deck:ward-salvage/ward-c58e9c43
coilyco-flight-deck:ward-salvage/ward-7487270b
No reviewers
Labels
Clear labels
burndown-2026-06
Backlog burndown June 2026
pressure-test
Cold-read release pressure-test findings and coordination
sunday-sprint
Burn-down by Sunday 2026-06-07
coherence-core
Core review set for the warded control plane coherence milestone. These issues form the release spine; adjacent milestone issues are stretch or supporting work.
consult
A human decision, design, or external action must happen first. Fail-closed default for unlabeled/low-confidence.
headless
Agent can take it from open issue to merged change with no human in the loop. The auto-burndown queue.
interactive
Agent does the work but pauses at a human checkpoint mid-flight (design choice, destructive step, human-only verification).
P0
now / blocking / urgent
P1
next / important
P2
backlog / will do
P3
someday / low
P4
icebox / frozen / reopen if it becomes real
No labels
burndown-2026-06
pressure-test
sunday-sprint
coherence-core
consult
headless
interactive
P0
P1
P2
P3
P4
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set.
Reference
coilyco-flight-deck/ward!987
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "issue-927"
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?
closes #927
ward.workflow: pull-requests-and-merge
verdict: block
confidence: high
summary: The patch adds a useful
broker-logssurface for dispatch wrapper and broker logs, but it misses the fresh issue-thread requirement for silent or exited engineer-log reads.ward agent logs <issue>can still choose a container/archive source and print no useful explanation.findings:
file: cmd/ward/agent_logs.go
line: 393
problem: The diff routes file sources through tail/follow and adds broker-log sources, but it does not change the engineer-log path to explain an empty Docker/container/archive stream. The issue thread explicitly added a repro where
warded logs coilyco-flight-deck/ward#943 --tail 120printed the selected docker source and a container id, with no actual log lines and no explanation that the container was exited, empty, missing an archive, or failed before console capture.impact: The main TUI/director usability gap remains for a reserved issue whose engineer is no longer in
warded list: the operator still cannot tell whether the run exited, had no logs, had no archive, or failed before capture. That is the exact state the issue asked the log surface to make legible after the initial body was amended.conclusion: Review blocks PR #987. Keep the new broker-log surface, but also make
ward agent logs <issue>produce a clear empty-source explanation or fallback hint for the silent/exited container case, with a regression test for that repro shape.The burn-down session, working for Kai, reviewed this PR against current main and closes it as superseded.
Main absorbed the core acceptance of ward#927 while this branch sat 199 commits behind:
ward agent logs <ref>now falls back per-ref to the newest host dispatch wrapper log (latestDispatchLogPathForRefincmd/ward/agent_logs.go), and the read forwards through the dispatch broker from a director surface.ward agent logs <ref>locator (cmd/ward/agent_dispatch_broker.go), so the operator never copies a host log path.streamEmptyDockerAgentLogsSourceplus the live transcript-tree fallback deliver the empty/silent-source legibility that the blocking review on this PR asked for.Repo governance already recorded this disposition: ward#1149 (closed via merged PR #1163) called for closing #987 as superseded rather than rebasing it.
Landing this branch now would regress main in two spots. Its
dispatchBrokerForwardedLineedit drops the per-ref locator in favor of a ref-lessbroker-logs --latesthint, and its keyword shim inresolveDispatchBrokerLogsSourceintercepts targets ahead of main's per-issue resolution.The still-novel remainder (no-ref latest-dispatch selection, a
WARD_BROKER_LOGcredential-broker read surface, and file--followvia tail) exceeds ward#927's acceptance criteria and belongs in a fresh issue against current main if still wanted. The burn-down session closes this PR and deletes branchissue-927.Pull request closed