Build Log · August 31, 2026

Dobby Takes Orders

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-2
  • Owner Loop
  • OAuth
  • OS Engine
real production deploys
9

real production deploys

new API routes
3

new API routes

acceptance-boundary false positives found & fixed
2

acceptance-boundary false positives found & fixed

Vercel Blob store provisioned end-to-end
1

Vercel Blob store provisioned end-to-end

Timeline

  1. Start

    Recovered a stranded canvas-2 deploy

    hypothesis_outcome contract gap, real fix recovered and independently verified live

  2. +1h

    Command-center Charge received

    Zeb: build the Google connection, Dobby character, and real build telemetry end-to-end — don't punt to me

  3. +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

  4. +5h

    Acceptance boundary redesigned

    2 false-positive blocks traced, root-caused, and fixed at the mechanism level

  5. +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