Publish and deploy the Bevy/Wasm shell to factory.coilysiren.me #27

Closed
opened 2026-07-23 05:52:19 +00:00 by coilyco-ops · 3 comments
Member

Context

Kai confirmed there is no longer an active or unpushed native branch. Remote main is authoritative and safe for a sealed engineer to work from.

The Bevy/Wasm shell and repo-root Dockerfile landed in 7cd29b4, but delivery remains incomplete:

  • .forgejo/workflows/ has only the test gate; no workflow publishes factory-game-v3:<sha> to the in-cluster registry.
  • coilyco-bridge/deploy already has the Helm chart and rollout guard, but it refuses to deploy because no registry tag exists.
  • factory.coilysiren.me does not currently resolve and no Factory Game workload has gone live.
  • The shared dev-base dependency defect is being repaired separately in coilyco-flight-deck/agentic-os#619. Do not duplicate that work here.

This is a fresh execution issue. Use the older coilyco-bridge/deploy#165 only as historical diagnosis; do not reopen or repurpose it.

Scope

Complete the packaging and first deployment without expanding gameplay.

  1. Add a Forgejo build/publish workflow following the established static Rust/Wasm service pattern.
  2. Build the existing repo-root Dockerfile and publish 192.168.0.194:30500/factory-game-v3:<full-main-sha> only after the appropriate source validation succeeds.
  3. Preserve immutable SHA tagging and avoid floating deployment tags.
  4. Ensure the workflow handles the private repository and Git LFS checkout without exposing credentials.
  5. Coordinate the existing coilyco-bridge/deploy/services/factory-game rollout surface with the published artifact. Keep deploy changes confined to that service.
  6. Trigger or otherwise complete the first rollout after the image exists.
  7. Verify the Kubernetes workload and endpoints are Ready, the certificate is Ready, ExternalDNS creates factory.coilysiren.me, /healthz succeeds, and / serves the Wasm shell.
  8. Update source and deploy documentation so the image ownership and rollout flow match reality.

Guardrails

  • Do not add gameplay, simulation, viewer behavior, art, or balance changes.
  • Do not touch retained Unity assets or LFS policy except where checkout configuration is strictly required for the image build.
  • Do not work around agentic-os#619 by installing shared CI dependencies ad hoc in the source test workflow. The application Dockerfile may continue owning its own build dependencies.
  • Keep the public site read-only and secret-free.

Acceptance

  • A source main SHA has a corresponding registry image.
  • Source validation and image publication are green or their distinct status is accurately gated and documented.
  • The deploy rollout consumes that exact SHA.
  • factory.coilysiren.me resolves publicly and returns the shell over valid TLS.
  • /healthz returns success and Kubernetes reports Ready pods/endpoints.
  • The issue records the deployed source SHA and verification evidence.
## Context Kai confirmed there is no longer an active or unpushed native branch. Remote `main` is authoritative and safe for a sealed engineer to work from. The Bevy/Wasm shell and repo-root Dockerfile landed in `7cd29b4`, but delivery remains incomplete: - `.forgejo/workflows/` has only the test gate; no workflow publishes `factory-game-v3:<sha>` to the in-cluster registry. - `coilyco-bridge/deploy` already has the Helm chart and rollout guard, but it refuses to deploy because no registry tag exists. - `factory.coilysiren.me` does not currently resolve and no Factory Game workload has gone live. - The shared dev-base dependency defect is being repaired separately in `coilyco-flight-deck/agentic-os#619`. Do not duplicate that work here. This is a fresh execution issue. Use the older `coilyco-bridge/deploy#165` only as historical diagnosis; do not reopen or repurpose it. ## Scope Complete the packaging and first deployment without expanding gameplay. 1. Add a Forgejo build/publish workflow following the established static Rust/Wasm service pattern. 2. Build the existing repo-root Dockerfile and publish `192.168.0.194:30500/factory-game-v3:<full-main-sha>` only after the appropriate source validation succeeds. 3. Preserve immutable SHA tagging and avoid floating deployment tags. 4. Ensure the workflow handles the private repository and Git LFS checkout without exposing credentials. 5. Coordinate the existing `coilyco-bridge/deploy/services/factory-game` rollout surface with the published artifact. Keep deploy changes confined to that service. 6. Trigger or otherwise complete the first rollout after the image exists. 7. Verify the Kubernetes workload and endpoints are Ready, the certificate is Ready, ExternalDNS creates `factory.coilysiren.me`, `/healthz` succeeds, and `/` serves the Wasm shell. 8. Update source and deploy documentation so the image ownership and rollout flow match reality. ## Guardrails - Do not add gameplay, simulation, viewer behavior, art, or balance changes. - Do not touch retained Unity assets or LFS policy except where checkout configuration is strictly required for the image build. - Do not work around `agentic-os#619` by installing shared CI dependencies ad hoc in the source test workflow. The application Dockerfile may continue owning its own build dependencies. - Keep the public site read-only and secret-free. ## Acceptance - A source `main` SHA has a corresponding registry image. - Source validation and image publication are green or their distinct status is accurately gated and documented. - The deploy rollout consumes that exact SHA. - `factory.coilysiren.me` resolves publicly and returns the shell over valid TLS. - `/healthz` returns success and Kubernetes reports Ready pods/endpoints. - The issue records the deployed source SHA and verification evidence.
Author
Member

WARDED_WORKFLOW: reservation-released

release details

Run never started. ward container reap released container engineer-codex-factory-game-v3-27 (--harness codex): it exited without launching the agent (smoke-test death, ward#222/#264/#595), so it did no work and the launch intent it took is retracted. Nothing is running on this issue. It needs re-dispatch. A ward agent director re-queues it automatically. A manual ward agent retry no longer needs --override-reservation.

— Codex, via ward agent

<!-- ward-agent-reservation-released --> <!-- ward-needs-redispatch --> WARDED_WORKFLOW: reservation-released <details><summary>release details</summary> Run never started. `ward container reap` released container `engineer-codex-factory-game-v3-27` (`--harness codex`): it exited without launching the agent (smoke-test death, ward#222/#264/#595), so it did no work and the launch intent it took is retracted. Nothing is running on this issue. It needs re-dispatch. A `ward agent director` re-queues it automatically. A manual `ward agent` retry no longer needs `--override-reservation`. </details> <!-- ward-agent-signature --> — Codex, via `ward agent`
Author
Member

WARDED_WORKFLOW: reservation-held

reservation details

Holder: launch intent for container engineer-codex-factory-game-v3-27 on host kais-macbook-pro-2.local.

Accepted by ward agent --harness codex (reserved 2026-07-23T07:25:24Z). Concurrent ward agent runs are blocked until this intent becomes visible or the intent is released. The stale-intent fallback is still TTL-bounded (3h TTL). --override-reservation overrides.

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)
  • Resolved: coilyco-gaming/factory-game-v3#27 · branch issue-27 · harness codex · workflow merge-remote-main
  • Run: engineer-codex-factory-game-v3-27 · ward v0.793.0 · dispatched 2026-07-23T07:25:22Z
  • Reservation: held
  • Comment thread: 1 included in the pre-flight read, 0 stripped (ward's own automated comments).

Static container doctrine and seed boilerplate are identical every run and omitted here (they ride ward v0.793.0).

— Codex, via ward agent

<!-- ward-agent-reservation --> WARDED_WORKFLOW: reservation-held <details><summary>reservation details</summary> Holder: launch intent for container `engineer-codex-factory-game-v3-27` on host `kais-macbook-pro-2.local`. Accepted by `ward agent --harness codex` (reserved 2026-07-23T07:25:24Z). Concurrent `ward agent` runs are blocked until this intent becomes visible or the intent is released. The stale-intent fallback is still TTL-bounded (3h TTL). `--override-reservation` overrides. **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). <details><summary>run seed context — what this run is carrying (ward#609)</summary> - **Resolved:** `coilyco-gaming/factory-game-v3#27` · branch `issue-27` · harness `codex` · workflow `merge-remote-main` - **Run:** `engineer-codex-factory-game-v3-27` · ward `v0.793.0` · dispatched `2026-07-23T07:25:22Z` - **Reservation:** held - **Comment thread:** 1 included in the pre-flight read, 0 stripped (ward's own automated comments). - included: @coilyco-ops (2026-07-23T07:23:47Z) Static container doctrine and seed boilerplate are identical every run and omitted here (they ride ward v0.793.0). </details> </details> <!-- ward-agent-signature --> — Codex, via `ward agent`
Author
Member

Rescue review found no engineer-authored work to preserve.

  • Run boundary - Ward failed during the fresh checkout before the model launched.
  • Blocker - Forgejo LFS reports that the tracked object for Assets/200 Smoke & Fog & Mist Texture/BlackAndWhite/Smoke (89).png is missing from remote storage.
  • Repository state - the engineer produced no source analysis, diff, commit, branch, or verification.
  • Redispatch - an operator must restore the missing LFS object and confirm a normal fresh clone completes before another engineer starts.
<!-- ward-rescue-review-2026-07-23 --> Rescue review found no engineer-authored work to preserve. * Run boundary - Ward failed during the fresh checkout before the model launched. * Blocker - Forgejo LFS reports that the tracked object for `Assets/200 Smoke & Fog & Mist Texture/BlackAndWhite/Smoke (89).png` is missing from remote storage. * Repository state - the engineer produced no source analysis, diff, commit, branch, or verification. * Redispatch - an operator must restore the missing LFS object and confirm a normal fresh clone completes before another engineer starts.
Sign in to join this conversation.
No milestone
No project
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-gaming/factory-game-v3#27
No description provided.