Google connector sources cannot sync under managed mode, and `writer activate --dry-run` does not report it
Author: mmakunasCreated Sep 17, 2026Updated Sep 17, 2026
Observed (0.51.0.0, Postgres 17, macOS; schema v149 → v159 applied)
Brain with 11 kind: google sources (one Gmail, ten Calendar) and one hardened workspace source. gbrain sources writer activate --confirm-quiesced --dry-run --json returned only:
{"error":"writer_registration_required","message":"Source 'gcal-8th-hawks' needs an active canonical owner before activation."}Nothing in the dry run, in skills/migrations/v0.51.0.0.md, or in docs/guides/concurrent-writes.md states that Google sources have no sync path once managed mode is enabled. We did not activate.
Mechanism (read in the v0.51.0.0 tree)
runGoogleSynccallsassertUnmanagedCanonicalWriter(engine, 'Google source sync')before any work (src/core/google/google-source.ts:963); the assertion throwswriter_coordinator_requiredwhenpersistence_brain.enabledis true (src/core/persistence/maintenance.ts:9-13).- The managed sync path refuses any source with
config.kindset:performSyncroutes toperformManagedSyncwhen managed (src/commands/sync.ts:618-619) andresolveManagedSyncContextthrowswriter_coordinator_required: Connector sync requires its dedicated coordinator.(src/core/persistence/sync-discovery.ts:60). - Activation validates owner bindings, native locks, legacy leases and pending requests (
src/core/persistence/activation.ts:32-89) and does not readsources.config.kind.
Acceptance criteria
sources writer activate --confirm-quiesced --dry-runon a brain with an activekind: googlesource reports that source as unsupported under managed mode, or activation refuses, naming the sources.- The v0.51.0.0 migration skill states which source kinds have no managed sync path.
Related
#5175, #5176, #5182 (other managed-mode gaps, same release). This one concerns connector kinds.
Source: garrytan/gbrain