Forge Alpha S1 — Sprint Retrospective
Sprint retro for P1 blockers. 6 tickets shipped via PR #107.
Sprint: Alpha S1 — P1 Blockers Dates: 2026-04-30 → 2026-05-01 Goal: Fix all issues that prevent core product usage. Product must be usable after this sprint. Result: All 6 tickets shipped to prod via PR #107, deployed 2026-04-30 23:08 UTC.
Tickets Completed
Section titled “Tickets Completed”FORGE-59 — Message send completely broken (Highest)
Section titled “FORGE-59 — Message send completely broken (Highest)”What broke: Send button and Enter key did nothing in any thread. No message was submitted, no loading state shown.
Root cause: ef63652f added a WHERE workspace_root LIKE '/forge-data/users/{userId}/%' filter that always excluded forge-cloud projects (which live under /Users/cmmd/...). With no projects in the store, activeThread was undefined and onSend returned silently.
Fix: Gated the userId workspace filter on CMMD_SENTINEL_WORKSPACE_PREFIX env var in apps/server/src/ws.ts. Forge-cloud doesn’t set this var → no filter applied → projects return normally.
How to test:
- Open forge-cloud.cmmd.ai
- Click the pencil icon next to any workspace to create a new thread
- Type any message (e.g. “hello”) → click Send or press Enter
- Pass: URL changes from
/draft/...to a server thread URL (/workspaceId/threadId). Claude responds within ~10s. - Fail: URL stays at
/draft/.... No response. No toast.
FORGE-69 — Default model “gpt-5.4” blocks all sends (Highest)
Section titled “FORGE-69 — Default model “gpt-5.4” blocks all sends (Highest)”What broke: New threads defaulted to model gpt-5.4 which doesn’t exist in Forge’s provider registry. onSend silently no-oped when it couldn’t resolve the model.
Root cause: codex.enabled defaulted to true but Codex CLI was not installed on forge-cloud. Codex’s resolveTextGenerationProvider emitted a [ede_diagnostic] string and failed.
Fix: Changed codex.enabled default to false in packages/contracts/src/settings.ts. resolveTextGenerationProvider now falls through to claudeAgent (Claude Sonnet 4.6) as the first enabled provider.
FORGE-67 + FORGE-80 — Sidebar shows “Authenticated user” instead of real name (High)
Section titled “FORGE-67 + FORGE-80 — Sidebar shows “Authenticated user” instead of real name (High)”What broke: Bottom-left of sidebar showed “AU / Authenticated user” as the display name for every logged-in user.
Root cause: The CMMD JWT was present but the sidebar component wasn’t reading the name / displayName claim from it. It fell through to a static “Authenticated user” fallback string.
Fix: Wire the identity display name from the CMMD JWT through to the sidebar user profile component in apps/server/src/command/http.ts / normalizeUserIdentityFromApi.
FORGE-83 + FORGE-85 — Raw [ede_diagnostic] string shown as user-facing error (High)
Section titled “FORGE-83 + FORGE-85 — Raw [ede_diagnostic] string shown as user-facing error (High)”What broke: When a thread hit a runtime error, a red toast appeared with raw internal diagnostic text: [ede_diagnostic] result_type=user last_content_type=n/a stop_reason=tool_use
Root cause: Codex CLI was being invoked even on forge-cloud (where it’s not installed). The CLI’s stdout contained the [ede_diagnostic] prefix which was passed through as the error message to the toast system.
Fix: Same as FORGE-69 — codex.enabled: false by default means the Codex code path is never entered on forge-cloud.
Regression Checklist
Section titled “Regression Checklist”| Check | Expected |
|---|---|
| New thread → send “hello” | Claude responds within 15s |
| Sidebar user profile | Shows real name, not “Authenticated user” |
| Model picker on new thread | Defaults to Claude / Sonnet 4.6 |
| Error toasts | No raw [ede_diagnostic] strings |
| Settings → Providers → Codex | Shown as disabled |
PR & Deploy Reference
Section titled “PR & Deploy Reference”| Item | Value |
|---|---|
| PR | #107 — fix: FORGE-69 silent send, identity display name, Codex disabled-by-default |
| Merge commit | bdd5c56d |
| Deployed | 2026-04-30 23:08 UTC via Deploy Forge Web workflow |
| Verified on | forge-cloud.cmmd.ai |