Add Forgejo Actions log streaming to ward-kdl specgen #396
Labels
No labels
burndown-2026-06
coherence-core
consult
headless
interactive
P0
P1
P2
P3
P4
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
coilyco-flight-deck/agentic-os#396
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?
Design and implement ward-kdl support for Forgejo Actions job log streaming.\n\nContext:\n- Forgejo 15.0.2 exposes Actions task metadata in the REST swagger, but not job log streaming.\n- The live web route streams plaintext logs from server-side action log storage: GET /{owner}/{repo}/actions/runs/{run}/jobs/{job}/attempt/{attempt}/logs.\n- Source: routers/web/web.go registers the route, routers/web/repo/actions/view.go Logs opens actions.OpenLogs and ctx.ServeContent streams text/plain as an attachment.\n- The canonical coilyco ward-spec bundle is aos .ward/, so the Forgejo guardfile/spec overlay belongs here.\n\nDesired design:\n- Add a specgen/overlay mechanism for authenticated Forgejo web routes that are not present in swagger.v1.json.\n- Model the action log endpoint as a read-only streaming/download operation, not a mutating REST task operation.\n- Expose it through ward as a clear verb, e.g. ward ops forgejo actions logs , or an equivalent action-log resource name that fits ward-kdl conventions.\n- Keep the existing owner restriction and Forgejo header-token auth.\n- Ensure output behavior preserves the streamed plaintext body. Do not YAML-render or JSON-render log text.\n- Add tests/docs/reference regeneration for the new verb.\n\nOpen design points:\n- Whether cli-guard already has a binary/plaintext response mode, or needs one.\n- Whether this should be an OpenAPI overlay JSON generated from KDL, or a first-class KDL route declaration compiled beside the swagger-derived operations.\n- Whether a helper action should resolve latest run/job indices from tasks list, or the first leaf should require explicit run/job/attempt parameters.
WARD-RESERVATION: held 🔒
reservation details
Holder: container
engineer-codex-agentic-os-396on hostkais-macbook-pro-2.local.Reserved by
ward agent --harness codex(reserved 2026-07-09T23:25:22Z). Concurrentward agentruns are blocked until it finishes or the reservation goes stale (1h 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).
run seed context — what this run is carrying (ward#609)
coilyco-flight-deck/agentic-os#396· branchissue-396· harnesscodex· workflowdirect-mainengineer-codex-agentic-os-396· wardv0.540.0· dispatched2026-07-09T23:25:22ZStatic container doctrine and seed boilerplate are identical every run and omitted here (they ride ward v0.540.0).
— Codex, via
ward agentWARD-RESERVATION: held 🔒
reservation details
Holder: container
engineer-codex-agentic-os-396on hostkais-macbook-pro-2.local.Reserved by
ward agent --harness codex(reserved 2026-07-10T04:49:26Z). Concurrentward agentruns are blocked until it finishes or the reservation goes stale (1h 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).
run seed context — what this run is carrying (ward#609)
coilyco-flight-deck/agentic-os#396· branchissue-396· harnesscodex· workflowdirect-mainengineer-codex-agentic-os-396· wardv0.555.0· dispatched2026-07-10T04:49:26ZStatic container doctrine and seed boilerplate are identical every run and omitted here (they ride ward v0.555.0).
— Codex, via
ward agentWARD-OUTCOME: done
details
workflow: direct-to-main; review summary: skipped because review gate skipped by ~/.ward/config.yaml default felt: straightforward after fixing the stale bundle constant and merging the remote main updates confidence: high surprises: the live Actions log bridge had to stay as a repo-local exec overlay to preserve raw plaintext output follow-ups: none