ci: batch Rust and release smoke checks into one job - #9
Open
ashutoshpw wants to merge 102 commits into
Open
ashutoshpw wants to merge 102 commits into
ashutoshpw wants to merge 102 commits into
Conversation
- Replace Blacksmith runner labels across workflows - Rename the APT mirror list and update mobile showcase documentation
Desktop, mobile, and hosted-web now present as T2 Code. Mobile bundle IDs and URL schemes move to t2code/t2code-dev/t2code-preview while mobile is still undistributed; desktop dual-registers legacy t3code schemes and the server trusts both generations of renderer origins so existing installs keep working. Desktop userData dir names and appUserModelId are intentionally unchanged for data migration.
MCP server identity, provider status messages, CLI output, desktop menus and error dialogs. Legacy userData dir name and appUserModelId assertions keep the old T3 Code names on purpose.
Includes legal pages and the T2 Code Relay API OpenAPI title. Legal entity T3 Tools, Inc. and t3.codes domains unchanged.
The upstream rebase restored the pre-rebrand APP_SCHEME, Android package, and Xcode workspace/scheme/product names in the mobile showcase harness, so it would build and deep-link the old t3code app. Align them with the rebranded app.config.ts (t2code scheme, com.t3tools.t2code, T2Code workspace) and rename the T3CodePublicConfig identifier while touching the file. Worked by GLM (zai-coding-plan/glm-5.3-flash) via opencode.
The upstream rebase reintroduced brand strings in comments, generated scripts, error copy, git author identity, live-activity titles, and the '95 marketing page. Rebrand the producer copy and the test expectations that assert it; legacy userData dir names, T3CODE_* env vars, upstream URLs, and the relay stack identifier stay as-is by design. Worked by GLM (zai-coding-plan/glm-5.3-flash) via opencode.
User-facing guides, operations notes, glossary/overview, README, and AGENTS.md still called the product T3 Code after the upstream rebase. Rewrite the copy; upstream repo URLs, app.t3.codes, winget/cask/AUR package IDs, and .t3 paths are intentionally unchanged. Worked by GLM (zai-coding-plan/glm-5.3-flash) via opencode.
Adds scripts/check-rebrand.ts, a zero-dependency guard wired into the vite+ pre-commit and pre-push hooks: added lines are checked against the rebrand rules (T3 Code copy, @t3code scope, port 3773, legacy t3code schemes) with allowlists and an exact-line baseline for intentional legacy/upstream strings. Also adds a CI tree-scan workflow and points the rebase skill's audit step at the tool.
…space Renames the two app packages to @t2code/web and @t2code/marketing and updates every reference: the server's workspace dep and its turbo dependsOn, root package.json marketing scripts, dev-runner filters (plus test expectations), CI install filters in web-preview and release workflows, Vercel install/build commands, the knip ignore entry, and the Effect context tag in the web httpClient. Lockfile regenerated via vp i. Verified: dev-runner test suite (72 passed), typecheck on @t2code/web and @t2code/cli. Ran with GLM (zai-coding-plan/glm-5.3-flash) via opencode.
Rename the iOS bundle identifier and Android package per variant: production codes.t2.mobile, preview codes.t2.mobile.preview, development codes.t2.mobile.dev. Update the showcase script and the test-t3-mobile skill docs/scripts that launch or inspect the dev app by its identifier.
Move the skill directory, update its frontmatter, cross-references in test-t3-app and AGENTS.md, and fix stale identity references inside it (app name T2 Code Dev, scheme t2code-dev, workspace T2CodeDev) to match the current Expo config.
Renames the internal scope for contracts, shared, client-runtime, ssh, tailscale, scripts, desktop, mobile, the mobile native modules, the oxlint plugin, and the monorepo root, covering ~2900 occurrences: source imports, subpath exports, Effect context tags, vi.mock paths, vp/pnpm filters (including the monorepo negation in CI), Vercel install commands, knip, lint rule names, and the stale @t3tools/server tag that predates the @t2code/cli rename. Lockfile regenerated. Desktop artifact identity moves to the t2 namespace: app id codes.t2.desktop (matching the mobile codes.t2.mobile move), artifact names codes.t2.desktop-*, Linux executable/desktop-entry/WM-class t2code, and the t2codeCommitHash build metadata field. Legacy compat is removed rather than carried: the dual-registered t3code/t3code-dev deep-link schemes, the legacy T3 Code (Dev)/(Alpha) userData-dir migration, the mobile t3code* link prefixes, the t3code-dev default in the mobile pairing script, and the scheme allowlist in the rebrand guard. The guard gains a t3tools-scope rule so upstream rebases cannot silently reintroduce the old scope, and the rebase skill's audit grep and scope classification were corrected (upstream's CLI is unscoped "t3"; @t3code/ never existed upstream). Live state namespaces are intentionally untouched: the t3code userData directory, persist:t3code-preview partitions, and localStorage keys stay so existing installs keep their data. Verified: typechecks across web, cli, desktop, mobile, shared, client-runtime, contracts, ssh, tailscale, scripts, marketing, relay; test suites for web (4052), cli (3993+13 pre-existing env failures), desktop (818+1 env), mobile (1262), shared (570), client-runtime (1259), and the scripts package; knip unchanged from HEAD; rebrand guard tree audit clean. Ran with GLM (zai-coding-plan/glm-5.3-flash) via opencode.
Port of upstream pingdotgg#7267 (inayayousfi), squashed and adapted to the fork: server-owned environmentLabel setting with an inline web editor, native mobile rename sheet, config-stream label events, and relay label synchronization. Adaptations for current upstream drift (969 commits since the PR forked): environmentLabel Ref moved into make() (descriptor builder), label projection case ported into serverConfigProjection.ts, relay sync requirements bound at the startup call site (ServerSecretStore + FetchHttpClient), startup-heartbeat test dropped (removed upstream), machine icon kept beside the rename control, derived duplicate-dialog state instead of setState-in-effect. Verified: rebrand guard clean; targeted typecheck + tests green for contracts, client-runtime, server, relay, web, and mobile. Ported-by: GLM (zai-coding-plan/glm-5.3-flash) via opencode, driven by ashutoshpw
Chat history import was only reachable through the welcome wizard, and the server refused anything older than 30 days, so a new install could backfill recent work but nothing else, and an existing install had no path at all. Add an optional 'since' bound to agentSessions.import (decode-time validated, absent/null keeps the 30-day default) and thread it through the scanner's recency cutoff. Extract the wizard's per-project import loop into a shared module and build an 'Import chats' dialog on it in Settings > Providers with a window picker (30 days / since date / all time). Re-runs stay safe through the existing imported-transcript dedup. Imported conversations still resume the original provider session.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
This was referenced Sep 22, 2026
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: 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. |
ashutoshpw
force-pushed
the
main
branch
6 times, most recently
from
September 26, 2026 21:49
3d88555 to
526f672
Compare
devin-ai-integration
Bot
force-pushed
the
main
branch
from
October 1, 2026 13:19
91e9c4f to
d5b7276
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Rust(66s wall) andRelease Smoke(66s wall) each started a runner and paid their own sparse checkout for work that finishes well before the fork's critical path (Test, ~424s). Two runner allocations for two short checks is the repeated-setup tax Linear removed by batching short checks.Fix
Merge both into one job,
Rust + Release Smoke(rustjob id):cargo fmtthencargo testfirst so Rust failures surface fast, then the filtered@t2code/scripts...install andnode scripts/release-smoke.ts. No step was lost, no timeout or permission weakened, and nosetup-apt-mirrorswas added (neither job needed it).Evidence
main@99908f59f, run35655900272): Rust 66s + Release Smoke 66s, two runner allocations.Rust + Release Smokejob is 115s — one runner, one checkout, and both step groups green.22675324has only deletion/creation rules and no required status checks, so the job rename does not block merges.release_smoke.Stack
#9 (this PR) ← #11 (skip the desktop build on documentation-only changes)
Merge in order; after this one merges, the next PR is retargeted to
main.Manual Testing Guide
gh run view <run-id> --repo ashutoshpw/t2code --json jobs.Rust + Release Smokeexists and noRelease Smokejob exists.Check Rust formatting,Test Rust crates,Setup Vite+(filtered install), andExercise release-only workflow steps, all passing.Checkstill runs knip,vp check, typecheck, and the Electron setup;TestandTest Server 1-3are unchanged.