ForgeKitFORGEKIT

Build Log

Dobby Takes Orders

August 31, 2026

Canvas-2 got a real Google OAuth connection, a real Dobby-driven command center, and an Owner Loop that stopped punting on its own false-positive safety checks.

Canvas-2Owner LoopOAuthOS Engine
9
real production deploys
3
new API routes
2
acceptance-boundary false positives found & fixed
1
Vercel Blob store provisioned end-to-end

Timeline

Start
Recovered a stranded canvas-2 deploy
hypothesis_outcome contract gap, real fix recovered and independently verified live
+1h
Command-center Charge received
Zeb: build the Google connection, Dobby character, and real build telemetry end-to-end — don't punt to me
+3h
Command center shipped and debugged live
OAuth flow, Dobby art, build-progress honesty — plus 3 real production bugs found and fixed from Zeb's live testing
+5h
Acceptance boundary redesigned
2 false-positive blocks traced, root-caused, and fixed at the mechanism level
+6h
Actor-comparison investigation + fixes
Diagnosed why autonomous canvas-2 builds underperformed a direct session, shipped 3 concrete fixes

What shipped

Real Google OAuth connection for canvas-2 — read-only Gmail + Calendar, connect/disconnected/expired/error UI states, token storage + refresh-on-read

Dobby-driven command center — real character art, state-based reaction lines, honest pre-Actor build-progress panel, one shared stage-derivation module so Dobby and the build panel can never contradict each other

Fixed a real production bug: OAuth redirect defaulting to localhost in production

Improved Gmail/Calendar API error diagnostics — surfaced the real cause (APIs not yet enabled in Google Cloud) instead of a bare status code

Hardened retry-deferred-deploy.mjs against a benign push race that was mislabeling successful deploys as failed GitHub Actions runs

Exempted single-owner playground apps (canvas-1 through canvas-4) from the Owner Loop's consequential-signal acceptance check, after it false-positived twice in one session

Diagnosed why autonomous canvas-2 Actor runs underperformed a direct interactive session — real evidence, not a hunch

Fixed a real, recurring contract bug: the Owner Loop Charge template's disposition vocabulary never matched what the validator actually checks, silently orphaning terminal results

Added a real file-attachment channel for canvas-2's request box (Vercel Blob), closing the 'no way to hand the Actor a file' wall that blocked the Dobby-image request twice

Added a 'build everything buildable' instruction to the Owner Loop Charge template, quoting Zeb's own real instruction from this session

We really need to rethink this. All of these should be getting deployed. None of them should be held up.

Zeb, after the acceptance boundary blocked a second real canvas-2 deploy this session