Repository navigation
Conversation
Chromeria V2 has to install and run beside the daily Chromeria app without sharing its bundle, Electron profile, URL scheme or T3 home, and without importing or registering anything that belongs to v1. CHROMERIA_DESKTOP_VARIANT=v2 now selects one fork-owned identity (scripts/lib/chromeria-desktop-identity.ts) at build time: Chromeria V2, md.toolbox.chromeria.v2, profile chromeria-v2, only the chromeria-v2:// scheme, and default home ~/.t3-v2 with an explicit T3CODE_HOME still winning. The default build is unchanged. - Packaging uses the identity's app id, product name, artifact name and macOS URL scheme, records chromeriaDesktopVariant in the packaged package.json, and rejects V2 on other platforms and unknown variants. - The desktop pack writes dist-electron/chromeria-desktop-identity.json binding the variant to the SHA-256 of main.cjs after it is written; the artifact script refuses a missing, mismatched or stale marker, so --skip-build cannot package another identity's bundle. - At startup V2 names itself, sets its own profile and takes a profile-scoped single-instance lock on macOS before the Clerk bridge registers its scheme; a second V2 instance quits there. V2 skips the V1 profile and Local Storage imports. - The shared ChatGPT handoff helpers take an optional explicit scheme and the provider return allowlist accepts chromeria-v2://app, so V2 receives only chromeria-v2://auth/codex handoffs and returns to its own origin. Refs #177 Model/harness: Claude Opus 5.5 through Claude Code in T3 Code. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: unavailable · PR result: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
|
What Exact-head source review of Reviewed base The installed Two bounded limitations are not blockers for the approved scope: hosted Proof qualification: The PR body records that the first scoped test import started at 09:47:53 CEST and auto-extracted about 307 MB of Electron 44.4.2 into the shared uiv2 donor by 09:47:55; the later 312-test proof used that extracted dependency. The local outputs therefore do not establish an unchanged donor or a pristine read-only test environment. No app was launched and no donor cleanup was performed. I did not rerun checks. This does not change the exact-head source verdict or the user/root-verified CI success. Proof inspected: parent-provided focused outputs report 26 files / 312 tests, changed lint/format, desktop/shared/scripts typechecks, and fork-check passing. The user and root verified CI run 37902966336 succeeded on this exact SHA with no reruns; I did not rerun it. No desktop build/package or live sign-in was attempted, so this review makes no artifact or tenant-acceptance claim. Requirements and who asked: User-approved build-time Reviewer: GPT-6-Luna ( |
|
What: Closing as superseded; the side-by-side Chromeria V2 identity is no longer wanted. 🤖 Generated with Claude Code |
What: Add the approved macOS Chromeria V2 build identity beside the default Chromeria app.
Why: V2 needs its own bundle, Electron profile, protocol and T3 home while v1 keeps running.
So what: Review this identity-only PR into
fork/v2; the user retains merge approval and root retains #195, landing, installation and real-data verification.Refs #177 and the side-by-side approval in #177 (comment). This PR does not close the rollout Issue.
Change
CHROMERIA_DESKTOP_VARIANT=v2 pnpm run dist:desktop:dmg:arm64selects one fork-owned definition inscripts/lib/chromeria-desktop-identity.ts, embedded by the desktop pack. It sets Chromeria V2, bundlemd.toolbox.chromeria.v2, profile/schemechromeria-v2, and default home~/.t3-v2; explicitT3CODE_HOMEwins. Default behavior and upstream versions stay unchanged. V2 packaging currently supports macOS only and rejects unknown variants or other platforms.V2 sets its name and profile before Clerk, then takes the macOS profile lock; a second V2 instance stops before the bridge. It skips both legacy profile import paths and registers only its own scheme. Clerk and shared Codex handoff/return helpers use the selected scheme with their existing host/path/state checks. The branding map/allowlist owns the small upstream hooks.
--skip-buildcan otherwise wrap a defaultmain.cjsin V2 packaging metadata. One pack hook writes{variant, mainSha256}after that bundle is emitted; packaging checks the requested variant and those actual bytes. No general manifest framework or dependency was added. The real pack hook remains unrun under the build hold.Exact candidate and proof
Base:
62726b5ce141e6f4df82bbf76d731e29d172df1a(fork/v2). Head:3535a35edc19817204329e0770feda52e02a7b23, one commit, 19 files, +898/-32; most additions are behavioral tests.All local checks used installed Node
v24.13.1, from the assigned workspace, after fresh one-minute load checks below 8. Workspace imports resolved to changed177-deliverysource, not uiv2 source. Dependency reuse was intended to be read-only, but the first test import triggered Electron 44.4.2 auto-extraction into the donor store; see the correction below.vp test run: 26 files, 312 tests passed. New identity, shared V2 handoff/delivery and stale-bundle tests, plus affected desktop/shared/managed-Codex regressions.vp lintandvp fmt --checkon the changed files: passed.tsc --noEmitinapps/desktop,packages/shared, andscripts: passed.bash scripts/fork-check.sh --base 12069eefd707f78eafc27812027c994eea0613cf: passed, 23 mapped features.git diff --check: passed.Independent exact-head source review found no blocking actionable findings. This PR remains draft because desktop artifact proof is user-held; source review and CI do not establish built packaging/runtime or live sign-in acceptance. Desktop pack/DMG, actual bundle metadata, application behavior, external sign-in, and browser/mobile UI have not been proved by this task. Full CI passed on this exact head, without reruns; it does not prove the held macOS artifact or live sign-in. The user explicitly holds desktop builds until disk space is confirmed. No app launch, merge, application install, live database access/snapshot or main push occurred.
Dependency reuse correction
The first focused command,
/tmp/177-proof/run.sh ./node_modules/.bin/vp test run apps/desktop/src/app/DesktopClerk.test.ts packages/shared/src/codexAuthHandoff.test.ts, started at 09:47:53 CEST on October 9. The realelectronimport resolved through the donor.pnpmlink. Installed Electron 44.4.2index.jscallsinstall.jswhenpath.txtis missing; it extractednode_modules/.pnpm/electron@44.4.2/node_modules/electron/distand wrotepath.txtin uiv2 at 09:47:54–09:47:55. The worker reports about 307 MB extracted, and admits its earlier unchanged-donor claim was wrong. This violated the read-only reuse constraint. Later proof used the extracted dependency; no app was launched. This thread performed no donor remediation or deletion. After explicit user authorization, root reports it removed only those donordistandpath.txttargets and verified both absent. All 13 task-owned temporary dependency directories/links in this worktree were then removed after reviewer settlement, without following their targets. The worktree remains clean at the exact head. Durable scoped evidence and incident record.Callback audit and limitations
@clerk/electron0.0.44 derives its callback and protocol registration from the selected renderer scheme. V2 passes onlychromeria-v2; pre-ready name/profile/lock order is tested. External Clerk tenant acceptance of that URI is unknown, not a proven service failure.http://127.0.0.1:<port>/auth/callback; desktop IPC returns the code without navigation. No custom OAuth scheme registration is required by this path.chromeria-v2://auth/codex, refuses v1/dev receivers, and returns the delivery. Shared helpers round-trip V2 path-form return URLs, sanitize parameters and reject malicious hosts/paths.CodexAuthCallbackPageandCodexChatGptAuthuse the corrected shared return validator. Relay transports authenticated environment calls, with no separate hardcoded Codex scheme.<scheme>://app/#/...return URLs remain rejected by the existing path-only sanitizer for every desktop scheme. The primary-environment handoff has no browser return link for this form. Path-form tests do not prove hash navigation; direct desktop IPC still works.app.t3.codeshelpert3code://auth/codex; V2 cannot receive it. The existing manual redirect-paste path remains. V2 never registerst3codeort3code-devto work around this.The existing explicit Install/Remove
t3command action controls the shared CLI link, even when both apps exist; the V2 launcher itself lives under its own T3 home. This behavior is documented and unchanged.Artifact identity for later authorized build
Expected default-version outputs:
release/Chromeria-V2-0.0.45-arm64.dmgandrelease/Chromeria-V2-0.0.45-arm64.zip, containingChromeria V2.app. Pattern:Chromeria-V2-${version}-${arch}.${ext}. DMG volume:Chromeria V2 <version> Installer.Staged
package.jsonhaschromeriaDesktopVariant: "v2"and the first 12 characters oft3codeCommitHash; it has no top-levelproductNamefield.build.productNameis Chromeria V2.Info.plistmust have bundlemd.toolbox.chromeria.v2and exactlychromeria-v2underCFBundleURLTypes. The bundle marker isapps/desktop/dist-electron/chromeria-desktop-identity.json, withvariant: "v2"and SHA-256 of siblingmain.cjs. These are expected identities, not observations of a built app.Website impact: none; this changes local desktop packaging/runtime, not a published website. Agent Observer cost publication was attempted with
publish --task toolboxmd/chromeria#177 --repo toolboxmd/chromeria --pr 196against its read-only cached ledger: exit 2,nothing to publish: no sessions in scope. No cost total is claimed. Ledger sync was not run because it reads live T3 state, which this task prohibits.Elon record
Requirements and who asked: User approved one build-time side-by-side identity and every sign-in callback path checked, as one PR into
fork/v2for #177.Deleted: Scheme takeover, v1 imports/lock changes, version bump, extra dependency tree/worktree, generic manifest framework, builds/install/real-data work from this scope.
Bottleneck: Build and live-sign-in proof are held by disk/authority limits; focused source proof and exact-head independent review are available now.
Checked myself: Full Issue decisions, upstream identity/protocol searches, clean exclusive base/head, complete diff, installed Clerk SDK, shared/server/relay callback paths and actual focused proof output.
Implementation: Claude Opus 5.5 through Claude Code, routed by Prism. Integration: GPT-6.1-Sol through Codex in T3 Code. Independent review: GPT-6-Luna through Codex, routed by Prism.