feat: add broker logs surface #987

Closed
coilyco-ops wants to merge 1 commit from issue-927 into main
Member

closes #927
ward.workflow: pull-requests-and-merge

closes #927 ward.workflow: pull-requests-and-merge
feat: add broker logs surface
All checks were successful
test / test (pull_request) Successful in 25s
b221f00490
Author
Member

verdict: block
confidence: high
summary: The patch adds a useful broker-logs surface 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:

  • severity: high
    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 120 printed 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.
verdict: block confidence: high summary: The patch adds a useful `broker-logs` surface 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: - severity: high 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 120` printed 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.
Author
Member

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 (latestDispatchLogPathForRef in cmd/ward/agent_logs.go), and the read forwards through the dispatch broker from a director surface.
  • Forwarded-dispatch failures always render a ready-to-run ward agent logs <ref> locator (cmd/ward/agent_dispatch_broker.go), so the operator never copies a host log path.
  • streamEmptyDockerAgentLogsSource plus 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 dispatchBrokerForwardedLine edit drops the per-ref locator in favor of a ref-less broker-logs --latest hint, and its keyword shim in resolveDispatchBrokerLogsSource intercepts targets ahead of main's per-issue resolution.

The still-novel remainder (no-ref latest-dispatch selection, a WARD_BROKER_LOG credential-broker read surface, and file --follow via 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 branch issue-927.

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 (`latestDispatchLogPathForRef` in `cmd/ward/agent_logs.go`), and the read forwards through the dispatch broker from a director surface. * Forwarded-dispatch failures always render a ready-to-run `ward agent logs <ref>` locator (`cmd/ward/agent_dispatch_broker.go`), so the operator never copies a host log path. * `streamEmptyDockerAgentLogsSource` plus 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 `dispatchBrokerForwardedLine` edit drops the per-ref locator in favor of a ref-less `broker-logs --latest` hint, and its keyword shim in `resolveDispatchBrokerLogsSource` intercepts targets ahead of main's per-issue resolution. The still-novel remainder (no-ref latest-dispatch selection, a `WARD_BROKER_LOG` credential-broker read surface, and file `--follow` via 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 branch `issue-927`.
coilyco-ops closed this pull request 2026-07-13 08:06:08 +00:00
All checks were successful
test / test (pull_request) Successful in 25s

Pull request closed

Sign in to join this conversation.
No description provided.