Namespace rich previews under /eco rich and scope them to #eco-info #148

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

Product direction: the special Discord rich-preview commands should be namespaced as /eco rich status, /eco rich world, /eco rich economy, /eco rich player <name>, and /eco rich help. #eco-info is their dedicated channel. Update both Pycord worker registration and the explicit guild registration schema to use a rich subcommand group, keeping worker/schema parity covered by tests. Add a required ECO_DISCORD_INFO_CHANNEL_ID runtime setting; rich commands invoked outside that channel must resolve safely with a concise ephemeral redirect to the dedicated channel, without fetching Eco data. Keep guild-only registration, do not register globally, and do not change DiscordLink chat sync or notification feeds. Update Discord docs and feature inventory. This follows eco-app#147: rebase after its JSON-safety fix so the rich-preview lane remains single-threaded.

Product direction: the special Discord rich-preview commands should be namespaced as `/eco rich status`, `/eco rich world`, `/eco rich economy`, `/eco rich player <name>`, and `/eco rich help`. `#eco-info` is their dedicated channel. Update both Pycord worker registration and the explicit guild registration schema to use a `rich` subcommand group, keeping worker/schema parity covered by tests. Add a required `ECO_DISCORD_INFO_CHANNEL_ID` runtime setting; rich commands invoked outside that channel must resolve safely with a concise ephemeral redirect to the dedicated channel, without fetching Eco data. Keep guild-only registration, do not register globally, and do not change DiscordLink chat sync or notification feeds. Update Discord docs and feature inventory. This follows eco-app#147: rebase after its JSON-safety fix so the rich-preview lane remains single-threaded.
Author
Member

WARDED_WORKFLOW: done

details

Landed c20f4e5: /eco rich namespace plus #eco-info enforcement, schema/worker parity, tests, and docs.

workflow: merge-remote-main; review summary: skipped — the in-container review gate was intentionally skipped because the temporary ward default is pending brokered QA.

Felt: small, contained wiring change. Confidence: high. Surprises: none. Follow-ups: deploy ECO_DISCORD_INFO_CHANNEL_ID.

WARDED_WORKFLOW: done ✅ <details><summary>details</summary> Landed `c20f4e5`: `/eco rich` namespace plus `#eco-info` enforcement, schema/worker parity, tests, and docs. workflow: merge-remote-main; review summary: skipped — the in-container review gate was intentionally skipped because the temporary ward default is pending brokered QA. Felt: small, contained wiring change. Confidence: high. Surprises: none. Follow-ups: deploy `ECO_DISCORD_INFO_CHANNEL_ID`. </details>
Author
Member

WARDED_WORKFLOW: blocked 🛑

salvage details

An ephemeral ward container (codex mode) dispatched for this issue finished but its work was not merged to main, so cleanup preserved it on a branch before teardown and reopened the issue (a closing reference for #148 never reached main). Recover from the salvage branch below.

  • Repo: coilyco-gaming/eco-app
  • Salvage branch: ward-salvage/eco-app-b3384b9b
  • Pull request: not opened - PR creation failed: forgejo: parse created pull request: unexpected end of JSON input
  • Reason: merge conflict integrating onto main
  • Container uptime at reap: 4m (age of the baked Forgejo PAT snapshot; a long-lived container is likelier to carry a rotated token)

Cleanup diagnostics

--- reap diagnostics ---
ward version:      v0.792.0
version source:    pinned via WARD_VERSION/--ward-version (v0.788.0)
HEAD:              c20f4e5d92da
origin/main:       c20f4e5d92da
ancestry:          HEAD is ALREADY on origin/main - a salvage here is a FALSE salvage (ward#504 signature)
decision gate:     provenance missing or unreadable on already-landed merge-remote-main run
reason:            merge conflict integrating onto main
provenance:        missing or unreadable
run-owned landed:  no
working tree:      clean
container uptime:  4m (baked Forgejo PAT age proxy)
--- end reap diagnostics ---

Recover

git fetch https://forgejo.coilysiren.me/coilyco-gaming/eco-app.git ward-salvage/eco-app-b3384b9b
git checkout -b ward-salvage/eco-app-b3384b9b FETCH_HEAD

— Codex, via ward agent

WARDED_WORKFLOW: blocked 🛑 <details><summary>salvage details</summary> An ephemeral `ward container` (codex mode) dispatched for this issue finished but its work was **not merged to `main`**, so cleanup preserved it on a branch before teardown and reopened the issue (a closing reference for #148 never reached `main`). Recover from the salvage branch below. - **Repo:** `coilyco-gaming/eco-app` - **Salvage branch:** `ward-salvage/eco-app-b3384b9b` - **Pull request:** not opened - PR creation failed: forgejo: parse created pull request: unexpected end of JSON input - **Reason:** merge conflict integrating onto main - **Container uptime at reap:** 4m (age of the baked Forgejo PAT snapshot; a long-lived container is likelier to carry a rotated token) ## Cleanup diagnostics ``` --- reap diagnostics --- ward version: v0.792.0 version source: pinned via WARD_VERSION/--ward-version (v0.788.0) HEAD: c20f4e5d92da origin/main: c20f4e5d92da ancestry: HEAD is ALREADY on origin/main - a salvage here is a FALSE salvage (ward#504 signature) decision gate: provenance missing or unreadable on already-landed merge-remote-main run reason: merge conflict integrating onto main provenance: missing or unreadable run-owned landed: no working tree: clean container uptime: 4m (baked Forgejo PAT age proxy) --- end reap diagnostics --- ``` ## Recover ```bash git fetch https://forgejo.coilysiren.me/coilyco-gaming/eco-app.git ward-salvage/eco-app-b3384b9b git checkout -b ward-salvage/eco-app-b3384b9b FETCH_HEAD ``` </details> <!-- ward-agent-signature --> — Codex, via `ward agent`
Author
Member

WARDED_WORKFLOW: reservation-released

release details

Run finished with WARDED_WORKFLOW: blocked 🛑.

ward container reap released container engineer-codex-eco-app-148 (--harness codex): the terminal outcome supersedes the reservation, so a later redispatch no longer needs --override-reservation.

— Codex, via ward agent

<!-- ward-agent-reservation-released --> WARDED_WORKFLOW: reservation-released <details><summary>release details</summary> Run finished with `WARDED_WORKFLOW: blocked 🛑`. `ward container reap` released container `engineer-codex-eco-app-148` (`--harness codex`): the terminal outcome supersedes the reservation, so a later redispatch no longer needs `--override-reservation`. </details> <!-- ward-agent-signature --> — Codex, via `ward agent`
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/eco-app#148
No description provided.