The Forgejo Actions log + rerun bridges are dead: every API route they target 404s, including on successful runs #473
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/agentic-os#473
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?
Symptom
.ward/forgejo-actions-logs.shand.ward/forgejo-actions-rerun*.sh(and theagentic_os.forgejo_actions_logs/agentic_os.forgejo_actions_rerunmodules behind them) target Forgejo API routes this Forgejo does not serve. Every one returns 404, with a validcoilyco-opstoken that works fine elsewhere.An agent currently cannot read CI logs at all, and cannot re-run a failed job.
Evidence
Token is good - the tasks endpoint answers 200:
Every log/rerun/artifact route 404s:
This is not log expiry: it 404s for successful runs and for runs minutes old, exactly as it does for old failed ones. The route simply is not there.
forgejo_actions_logs.pyeven resolves the internal ids correctly first (it scrapesdata-run-id/data-job-indexoff the HTML), then dies on the final fetch:What does work (the workaround I had to use)
The web UI's own ajax endpoint, with Basic auth (
-u coilyco-ops:$TOKEN). NoteAuthorization: token ...gets a 307 redirect to login on web routes - only Basic works:That returns JSON with
logs.stepsLog[].lines[].message- the full plaintext stream. It is what I used to read thepublish-dev-basefailure that had been invisible for two days (aos#452). Without it that bug stays undiagnosable.The
/attempt/{n}suffix matters: without it the server looks upattempt 0and 500s withtask with job_id N and attempt 0: resource does not exist.Why it matters
Every workflow in this repo posts a Telegram alert on a red main, and the alert links a run URL an agent then cannot read. The whole point of
guardfile.forgejo.readactions.kdl(can run "actions logs") is that a headless agent can diagnose its own CI. Today it cannot, and the failure mode is silent: the bridge exits non-zero with a 404 and the agent has no path forward.Suggested fix
Repoint the bridges at the web ajax endpoint above (Basic auth,
/attempt/{n}, parsestepsLog), or confirm whether this Forgejo version simply lacks the API log routes and pin the bridge to whatever it does serve. Rerun likewise needs a working route (I had to fall back toPOST /actions/workflows/{file}/dispatches, which re-runs the whole workflow rather than the failed job).See the sibling issue on cli-guard for the guardfile/verb side.
Sibling issue on the engine side: cli-guard#223 - specverb cannot declare this surface at all (it is not in Forgejo swagger, the only working route is a web POST needing Basic auth), which is why it lives as an exec-dialect bridge here.
WARDED_WORKFLOW: reservation-held
reservation details
Holder: launch intent for container
engineer-codex-agentic-os-473on hostkais-macbook-pro-2.local.Accepted by
ward agent --harness codex(reserved 2026-07-14T10:39:23Z). Concurrentward agentruns are blocked until this intent becomes visible or the intent is released. The stale-intent fallback is still TTL-bounded (3h TTL).--override-reservationoverrides.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#473· branchissue-473· harnesscodex· workflowpull-request-and-mergeengineer-codex-agentic-os-473· wardv0.679.0· dispatched2026-07-14T10:39:18ZStatic container doctrine and seed boilerplate are identical every run and omitted here (they ride ward v0.679.0).
— Codex, via
ward agentImplement this with specverb fetch: https://forgejo.coilysiren.me/coilyco-flight-deck/cli-guard/src/branch/main/docs/specverb-fetch.md
WARDED_WORKFLOW: #529
details
workflow: pull-request-and-merge, review summary: skipped, review gate skipped by ~/.ward/config.yaml default
felt: the bridge work settled after switching the rerun metadata lookup to the internal run id, then the workflow dispatch fallback matched the deployed Forgejo behavior.
confidence: high
surprises: the visible run number was not the API key, and the rerun control 404'd here.
follow-ups: none