Skip to content

docs(fork): Chromeria install, rebase routine and GitHub-hosted CI - #9

Merged
lukemaj merged 10 commits into
mainfrom
chore/6-fork-maintenance
Sep 25, 2026
Merged

lukemaj merged 10 commits into
mainfrom
chore/6-fork-maintenance

Conversation

@lukemaj

@lukemaj lukemaj commented Sep 25, 2026 •

Copy link
Copy Markdown

The fork needs a daily-usable Chromeria build, a maintainable commit-stack model on upstream pingdotgg/t3code, and CI that actually runs. Fork PRs queued forever on Blacksmith runners the fork does not have.

Changes

  • Chromeria as the daily app (docs/fork.md, "Chromeria desktop app"): build with pnpm dist:desktop:dmg:arm64, install next to T3 Code (Alpha) with ditto plus ad-hoc codesign --force --deep --sign -, update by rebuilding. Gotchas: never run both apps on the same T3 home at once (use open -na /Applications/Chromeria.app --env T3CODE_HOME=... for a separate home), no auto-update, permissions may be asked again after each rebuild, shared t3code:// scheme, port fallback from 3773. Verified on this Mac: the build produced release/Chromeria-0.0.42-arm64.dmg (1m41s), bundle id md.toolbox.chromeria; the DMG's app fails codesign --verify as built and passes after the ad-hoc re-sign (rehearsed in a temp dir). Installing it is your step.
  • Stack model and routine: scripts/fork-rebase.sh, scripts/fork-check.sh, scripts/fork-upstream-edits.txt, scripts/fork-maintenance.test.ts, .github/workflows/fork.yml. Topic PRs squash-merge into one stack commit each. An upstream absorption rewrites main, which no GitHub merge can do without copying upstream commits under new hashes. So an absorption is proven on its own branch and lands with git push --force-with-lease=main:<old> origin <branch>:main after your approval (documented in "Routine").
  • Upstream edits allowlisted: all fork edits of upstream files from feat(desktop): brand the fork build as Chromeria #12, test(brand): expect the Chromeria web icons in production builds #13, feat(threads): production child threads in Agents panel plus threads MCP toolkit (#8) #10 and this PR are listed, and fork-check.sh passes on this branch.
  • CI on GitHub-hosted runners: ci.yml and mobile-fingerprint-check.yml remap blacksmith-*-ubuntu-2404 to ubuntu-24.04 and blacksmith-*-macos-* to macos-15. Release, deploy, preview and Windows workflows keep Blacksmith labels because they need upstream secrets and must not run here. fork.yml now checks the PR head instead of GitHub's merge ref, which the stack check rejected as a merge commit.
  • Host-neutral proof: the routine's proof clears ELECTRON_RUN_AS_NODE, resolves TMPDIR and drops /opt/homebrew from PATH. On this Mac those three cause about 50 upstream test failures without any fork change.

Dropped from the earlier candidate: the build-desktop-artifact.ts probe edit (now on main via #10) and the stale Project Direction duplicate. The branch is rebased on origin/main dbc38aff9.

Proof on 2c5f346f0

  • pnpm install --frozen-lockfile, vp run -r typecheck, vp lint, vp fmt --check: exit 0.
  • vp run -r test: the only branch failure missing from main's failure list is apps/web openVsxThemes.test.ts (15s timeout under full-suite load). It passes alone on the branch (10/10) and in the Linux CI Test job. Because vp run -r stops at the first failing package, apps/server ran separately on the branch: 50 failures, all among main's 51 (the known Mac-specific ThreadSettlementReactor protected-worktree cases, /var vs /private/var, and brew/npm-prefix cases). scripts/fork-maintenance.test.ts: 6/6.
  • Fork CI (GitHub-hosted, run 36133328921): Fork Stack Model, Test, Test Server 1-3, Rust, Release Smoke and the Mobile jobs pass. Check fails in knip on ThreadsToolkitRegistrationLive (unused export in apps/server/src/mcp/McpHttpServer.ts). feat(threads): production child threads in Agents panel plus threads MCP toolkit (#8) #10 added it, this PR does not touch that file, and it needs a follow-up there. The timing comparison with upstream Blacksmith is on Fork maintenance: commit stack on upstream, rebase routine and CI #6.

Upstream absorption

Lands after this merge on its own branch through scripts/fork-rebase.sh, recorded on #6 and in its PR. A squash merge here would have folded upstream commits into one fork commit and broken the stack.

Refs #6.

Model and harness: Claude Opus 5.5 (1M context), Claude Code.

🤖 Generated with Claude Code

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL labels Sep 25, 2026
@lukemaj
lukemaj force-pushed the chore/6-fork-maintenance branch from 3e3e8b4 to 357bf34 Compare September 25, 2026 12:03
@github-actions github-actions Bot added size:XL and removed size:XXL labels Sep 25, 2026
@github-actions

github-actions Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ℹ️ No successful main baseline artifact is available yet. This run establishes the initial measurement.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire — 13.5 KiB — 15.1 KiB ✅
Codex Thread snapshot wire — 7.1 KiB — 7.3 KiB ✅
Codex Live turn WebSocket wire — 6.4 KiB — 7.8 KiB ✅
Codex Live turn WebSocket decoded — 56.2 KiB — 66.4 KiB ✅
Codex Live turn messages — 9 — 21 ✅
Claude Total thread wire — 13.5 KiB — 15.1 KiB ✅
Claude Thread snapshot wire — 7.1 KiB — 7.3 KiB ✅
Claude Live turn WebSocket wire — 6.4 KiB — 7.8 KiB ✅
Claude Live turn WebSocket decoded — 57.0 KiB — 66.4 KiB ✅
Claude Live turn messages — 9 — 21 ✅

Baseline: unavailable · PR result: 6a5985b · Source CI: success

Scenario and decoded snapshot size

10 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.

  • Codex decoded thread snapshot: 113.9 KiB
  • Claude decoded thread snapshot: 114.6 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@lukemaj lukemaj changed the title docs(fork): rebase routine, stack check and fork CI docs(fork): Chromeria install, rebase routine and GitHub-hosted CI Sep 25, 2026
lukemaj and others added 8 commits September 25, 2026 14:42
Fork stays a small topic-commit stack on upstream main: docs/fork.md
describes the model, scripts/fork-rebase.sh absorbs upstream updates with
per-file conflict reports and proof-gated pushes, scripts/fork-check.sh
enforces the model, and .github/workflows/fork.yml runs it on every PR.
No upstream-owned files are modified.

Refs #6
fork-check.sh and fork-rebase.sh are driven against throwaway git
fixtures: new-file pass, unallowlisted-edit fail, allowlist pass,
merge-commit fail, missing-doc fail, no-proof push refusal and
no-main push refusal.

Refs #6
…b-hosted CI

Document building, installing and updating the Chromeria desktop app,
land absorptions on main with --force-with-lease after proof, allowlist
every fork edit of upstream files, remap the PR and main CI workflows
from Blacksmith to GitHub-hosted runners, and run the routine's proof in
a host-neutral environment.

Refs #6.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Refs #6.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Refs #6.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@lukemaj
lukemaj force-pushed the chore/6-fork-maintenance branch from 2c5f346 to f156c64 Compare September 25, 2026 12:42
@lukemaj
lukemaj merged commit e15afa0 into main Sep 25, 2026
18 checks passed
@lukemaj
lukemaj deleted the chore/6-fork-maintenance branch September 25, 2026 15:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant