Repository navigation
Support generation-bound Gmail and Calendar accounts - #87
Conversation
Decision: Findings
Tests Run
Raw runtime output was retained in local Gitmoot state and is not posted here. |
|
Independent level3 review: g7-review / devin-swe-2 APPROVED exact a38bd39. Job local-review-review-router-18df6cfa7d8484e9-1; implementing seat receipt session-implement-keyring-18df6cee78b91330 is separate. Reviewer executed CGO_ENABLED=0 build, vet, all Go tests, and the four Workspace regressions. Reviewer race execution was sandbox-blocked, not counted as passed. Durable full verdict: /root/fleet-tools/state/keyring-seat/multiple-google-accounts-20261017/review-a38bd39.json. Four nonblocking P3 observations are being corrected before final acceptance: legacy revoke_error preservation; refusing service-key rebinding of a migrated immutable default; per-slot OAuth-cache retention across unrelated swaps; actual refusal status in audit/usage. Fresh exact-head review will follow those changes. Actual frozen Worker + CLI synthetic-provider fixture at this approved head was delivered to Phobos327723; its smoke verified Alice personal/work and Bob identities plus cross-instance token rejection. No deployment or live Google calls. |
Decision: Findings
Tests Run
Raw runtime output was retained in local Gitmoot state and is not posted here. |
Assignment and scope
Implements #86. Assignment: Phobos327316/327332/327349/327360; contract frozen by Phobos327457 and Keyring327466, with TTL clarification327520 acknowledged327621. Implementer: keyring seat, not the independent reviewer. No automatic fix target.
Adds multiple Gmail/Calendar connection slots inside each existing personal instance. No deployment, live migration/hydration, new Google calls, public enrollment, or Drive/SDK migration is authorized by this PR.
Behavior
/_accounts/<id>/<service>/...proxy routes. Missing/stale/unverified bindings fail closed before provider work; role/service quotas stay aggregate.Verification
TestWorkspaceAccount*real-instance HTTP regressions pass with a synthetic TLS Google provider. Coverage: account/default isolation, sealed restart, generation/dispatch/disconnect ordering, failed remote revocation, grant ceilings/aggregate quotas, identity caching/binding invalidation, legacy diagnostics, immutable default key references, cache retention, and audit/HTTP status agreement.GOTOOLCHAIN=go1.24.13 go test -race ./...andgo vet ./...passed in the initial implementation run. After the review corrections,go test -race ./internal/instance ./internal/server ./internal/consentandgo vet ./...passed again. Workerbun run checkpassed; its TypeScript is unchanged by the corrections.test-check prove --test "env GOTOOLCHAIN=go1.24.13 go test ./internal/instance -v -run '^{name}$' -count=1": the original four feature tests are proven red/green against the base. An additional run with--base a38bd39c6eaa858d0802cd34f541601aa9abc600proves all four review-fix regressions fail on the previously reviewed implementation and pass now—not merely because the old API is absent. Receipts:/root/fleet-tools/state/keyring-seat/multiple-google-accounts-20261017/test-check-proof.jsonandtest-check-review-fixes.json.account-cli-review-audit-result.jsonin the same durable directory.worker-review-fix-smoke.log. Cloudflare runtime is replaced by the existing local harness.f178bbea6ab5ea1d86dd41987e11cb0ab2069b7everifies work-account cache retention across router-token rotation: one provider refresh, unchanged account generation. Alice personal/work and Bob identities are isolated. The current fixture uses actual HTTPS with a loopback-SAN test CA and the deployed canonical Calendar basehttps://www.googleapis.com. Manifest:fixture-manifest-1792273233581-d42adb0d.json; delivered to Phobos327815. Native Python with process-localSSL_CERT_FILEverifies three correct Calendar organizers, doubled-prefix404, and actual HTTPS consent page200 (fixture-tls-smoke-result.json). This corrects two fixture-only incompatibilities reported by Phobos; production/consumer URL validation and provider routes are unchanged.f178bbea6ab5ea1d86dd41987e11cb0ab2069b7e: format/vet/build/test and native macOS private-pipe import.Independent review
Approved at exact head
f178bbea6ab5ea1d86dd41987e11cb0ab2069b7e. Reviewerg7-review, modeldevin/swe-2, joblocal-review-review-router-18df6e7cd7a96f7b-1, review-only with--no-fix-target. The reviewer did not implement. Implementation receipts aresession-implement-keyring-18df6cee78b91330andsession-implement-keyring-18df6e7938db0a3f, acting rolekeyring.The initial whole-diff review approved
a38bd39; the final delta review confirms all four P3 findings fixed, with no new defect. Final reviewer checks: build and actual binary usage, changed-package vet, all eight Workspace regressions, consent tests (30 passing), and server tests. Reviewer race execution was sandbox-blocked and is not counted as passed; the implementing seat's changed-package race run passed independently. Full verdicts:review-a38bd39.jsonandreview-f178bbe.jsonin the durable evidence directory above.Cross-service acceptance
Passed: Phobos
95edc3dfcebba54ae4831ccbef3341d05625a8dbwith Keyringf178bbea6ab5ea1d86dd41987e11cb0ab2069b7e, reported327848 and read back by the Keyring seat. Actual OMP/pinned MCP image, HTTPS Worker and CLI exercised three identities, overlapping IDs, approved Calendar creation and correct Gmail sender, stale/dispatch-raced approval refusal, legacy-default non-fallback, migration invariant and ordinary refresh. The exact compiled router's signed-webhook command smoke also passed HTTPS consent and durable shared disconnect, preserving Bob and non-Workspace status. Receipts:/root/fleet-tools/state/phobos-dev/multi-account/keyring-artifact-smoke/receipt-f178bbe.jsonand/root/fleet-tools/state/phobos-dev/multi-account/keyring-binary-command-smoke-f178bbea-1792273924439426599.json.Google and WhatsApp transports were synthetic; no live provider requests or messages. No consumer tests were duplicated by Keyring. Superseded HTTP fixtures were stopped after Phobos confirmed them unused.
Bounded pilot cutover
Phobos-dev released its contract-first coordination hold in327880 (record) only for the existing-pilot plan327848/327861. This was not an owner stop. No new consent, account, enrollment, scope, Drive permissions, public rollout, paid work or sends are authorized. Live mutations still require explicit Phobos quiescence.
PR87 merged as
13c266c57dbf932d4f57cae34a49740462b8eccaafter final exact-head level3/CI gates. Reviewed and merged commits have the same treedb8ad64be79de6eea3b7b9e2a3e440ff236b59e3. Ordinary production imagekeyring:workspace-accounts-f178bbe(indexsha256:335486bb3b2b63a0c429a4ce0d586f594cd4c1dd46a92c27ef0b14a1bfdb83cc) was built from the committed tree without any test overlay and passed the actual non-root/read-only/network-disabled CLI smoke. Receipt:production-image-smoke.json.Bounded backend cutover passed. Phobos-dev executed through its existing authorized operator path (split327937), after explicit quiescence328025. Keyring independently read back and compared the receipts; no role borrowing or permission change.
Deployed Worker
8be4d941-70c0-4efa-a09c-bafad6640fdd; rollout06a1eaea-11a4-4fae-97c4-9bd2424f1ac7completed with7 healthy instances on the exact ordinary image above. Application configuration changed only in image; Worker settings/bindings stayed equal except its deployment-message annotation. Code rollout is application-wide, but metadata migration and identity hydration were each issued once for the existing pilot only. The verified identity matches prior acceptance; all seven cached service statuses and caller token mapping are preserved. Phobos's cached-only policy/account checker passed without provider paths or mutations.Independent preservation receipt:
/root/fleet-tools/state/keyring-seat/multiple-google-accounts-20261017/live-preservation-review.json; operator receipts:/root/fleet-tools/state/phobos-dev/multi-account/live-cutover/. Approval328046. Final caller activation passed at2026-10-17T22:49:09Z: active/running Phobos executable matches the reviewed release SHA256a3313eb4e950d6bf076da5d68acd0e0e82b977119357b4e5796972b0ebec16c3. Final receiptoperator-final-receipt.json, operator confirmation328070, and Phobos deployed acceptance. All synthetic fixture processes are now stopped.Limits: raw live credential/client/role/SDK-state byte equality is not exposed by the supported API and is not claimed. Exact synthetic preservation is covered by the ordinary-image/regression proofs; live preservation uses observable configuration and cached status. Ordinary refresh telemetry is unknown. Drive diagnostics report
no_attempt, not a new Drive probe. No new consent/account, extra provider test or send was authorized. Retain schema-capable Keyring and current sealed state on any caller rollback; never restore stale credentials.