Skip to content

chore(fork): integrate upstream v0.1.7-nightly.20261101.4048 - #65

Merged
kylebegeman merged 72 commits into
mainfrom
integrate/v0.1.7-nightly.20261101.4048
Nov 2, 2026
Merged

kylebegeman merged 72 commits into
mainfrom
integrate/v0.1.7-nightly.20261101.4048

Conversation

@kylebegeman

@kylebegeman kylebegeman commented Nov 2, 2026 •

Copy link
Copy Markdown
Owner

Merges upstream T3 Code v0.1.7-nightly.20261101.4048 into Loom. The seams in docs/fork/seams.tsv survived, the fork's tests and upstream's tests beside the files it changes pass, every package typechecks, and the built web client boots.

Land it from Terminal on your Mac (not inside Loom, which the install quits) with scripts/fork/loom.sh land: it merges with a merge commit, tags loom-v0.1.7-nightly.20261101.4048, publishes the next Loom release and installs it. Never squash or rebase this pull request; the fork needs upstream's history for the next merge.

maria-rcks and others added 30 commits November 1, 2026 06:52
…#28027)

Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
…8593)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…28834)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ngdotgg#28660)

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
…gdotgg#27197)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Matthew Feroz <136640686+MatthewFeroz@users.noreply.github.com>
Co-authored-by: Theo Browne <me@t3.gg>
Co-authored-by: Adamulek123 <adam.bogucki2018@gmail.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
Co-authored-by: hbw00111 <196409728+hbw00111@users.noreply.github.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
…dotgg#14989)

Co-authored-by: SAPHID <saphid@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…gdotgg#18416)

Co-authored-by: SAPHID <saphid@users.noreply.github.com>
Co-authored-by: GPT-6.1 Sol <noreply@openai.com>
Co-authored-by: SAPHID <saphid@users.noreply.github.com>
Co-authored-by: GPT-6.1 Sol <noreply@openai.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…g#22022)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: SAPHID <saphid@users.noreply.github.com>
…mments" (pingdotgg#22926)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
diddletime and others added 25 commits November 1, 2026 20:59
… left (pingdotgg#26095)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
…navailable" (pingdotgg#26398)

Co-authored-by: Vikas - AWS Auto <vikasmaur.in.13@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
…oment they start (pingdotgg#26459)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…tgg#26686)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
…es (pingdotgg#26936)

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
# Conflicts:
#	apps/desktop/src/backend/DesktopServerExposure.ts
#	apps/desktop/src/preview/CdpRelay.ts
#	apps/desktop/src/telemetry/DesktopTelemetryPublisher.test.ts
#	apps/desktop/src/updates/DesktopUpdates.ts
#	apps/mobile/src/features/home/HomeScreen.tsx
#	apps/mobile/src/features/settings/SettingsEnvironmentDetailRouteScreen.tsx
#	apps/mobile/src/features/settings/SettingsScheduledTasksRouteScreen.tsx
#	apps/mobile/src/features/settings/SettingsServerControlsRouteScreen.tsx
#	apps/mobile/src/features/threads/ThreadDetailScreen.tsx
#	apps/mobile/src/features/threads/ThreadSettingsSheet.tsx
#	apps/server/src/auth/EnvironmentAuthPolicy.ts
#	apps/server/src/auth/utils.ts
#	apps/server/src/cli/pair.ts
#	apps/server/src/cloud/http.ts
#	apps/server/src/cloud/selfUpdate.ts
#	apps/server/src/mcp/McpHttpServer.ts
#	apps/server/src/mcp/OrchestratorMcpService.ts
#	apps/server/src/mcp/toolkits/project/handlers.ts
#	apps/server/src/orchestration-v2/Adapters/ClaudeAdapterV2.ts
#	apps/server/src/orchestration-v2/ProviderTurnStartService.ts
#	apps/server/src/orchestration-v2/RuntimePolicy.test.ts
#	apps/server/src/orchestration-v2/RuntimePolicy.ts
#	apps/server/src/provider/ProviderInstanceRegistry.ts
#	apps/server/src/provider/agentContextBudget.json
#	apps/server/src/scheduledTasks/ScheduledTaskService.ts
#	apps/server/src/server.ts
#	apps/server/src/serverSettings.test.ts
#	apps/server/src/serverSettings.ts
#	apps/server/src/usage/UsageService.test.ts
#	apps/server/src/workspace/WorkspaceFileSystem.ts
#	apps/server/src/ws.ts
#	apps/web/src/components/ServerUpdateAction.tsx
#	apps/web/src/components/Sidebar.logic.ts
#	apps/web/src/components/onboarding/WelcomeWizard.tsx
#	apps/web/src/components/settings/ProviderInstanceCard.tsx
#	apps/web/src/components/settings/SavedEnvironmentRows.tsx
#	apps/web/src/components/settings/SettingsPanels.tsx
#	apps/web/src/lib/backgroundActivityReporter.test.ts
#	apps/web/src/lib/backgroundActivityReporter.ts
#	knip.jsonc
#	packages/client-runtime/src/connection/routes.ts
#	packages/contracts/src/index.ts
#	packages/contracts/src/ipc.ts
#	packages/contracts/src/orchestratorMcp.ts
#	packages/contracts/src/scheduledTask.ts
#	packages/contracts/src/settings.ts
#	packages/tailscale/src/tailscale.ts
#	scripts/dev-runner.ts
#	scripts/lib/dev-share.ts
… (Checking that every fork seam survived)

Failing check: Checking that every fork seam survived

I've repaired "Checking that every fork seam survived". `check_seams` now passes, the ProviderSessionManager credential test passes, and the edited files pass format and lint. Nothing is committed.

**What failed and why.** Five manifest rows in `docs/fork/seams.tsv` counted more `fork:` marker lines than the files now have. Three were caused by upstream's new code and two by earlier fork commits on main:
- **`UsageService.test.ts` (`hermetic-tests`, 0 of 2):** upstream pingdotgg#28603 now pins the clock in that test itself. Upstream does what the seam did, so I dropped the seam, its row, and the FORK.md table row and paragraph.
- **`Sidebar.logic.ts` (`attention-status`, 7 of 8):** upstream f2dd1a4 deleted `THREAD_STATUS_PRIORITY` and its only consumer, and the missing marker was the `Paused` entry in that table. The seam went with the table, so the row is now 7.
- **`DesktopTelemetryPublisher.test.ts` (`machine-updates`, 2 of 3):** upstream now imports `effect/Stream` itself, which makes the fork's marked import redundant. The row is now 2.
- **`ProviderSessionManager.ts` / `.test.ts` (`ext-mcp`, 3 of 5 and 6 of 14):** these were lost before the merge, not by it. Fork commit 0b43179 on main moved tool access to a per-request refresh (`SessionToolPolicy.refresh`). In doing so it removed `sameCapabilities` along with upstream's preview/device credential comparison, and it left six fork test lines without markers.

**What I changed.**
- In `ProviderSessionManager.ts` I added one marker line where upstream's two comparison lines were removed, so the next merge treats that deletion as a seam instead of quietly bringing the lines back.
- In the test I marked the six fork lines. I also put back upstream's test title, because the fork's title ("…until its tool families change") no longer describes what the test asserts.
- The rows are now 4 and 12, and I updated FORK.md and the L18 `SEAMS.md` to match.

With the counts fixed, `check_seams` reached a second step the original run never got to and found two marked lines with no manifest row. Both come from fork commits on main: `packages/contracts/src/projectSharing.ts` (`library-projects`) and `patches/vitest@5.0.1.patch` (`nightly`). I added a row for each.

I didn't touch any upstream code. `McpHttpServer.ts` still has unmarked fork edits from 0b43179; the seam check can't detect those, so I left them for whoever owns that work.
… (Checking for new T3 Code product text)

Failing check: Checking for new T3 Code product text

**What failed:** "Checking for new T3 Code product text". Upstream v0.1.7-nightly.20261101.4048 added a managed-policy feature that brought seven new user-visible strings naming "T3 Code". They are policy errors, "manages T3 Code updates" and "Restart T3 Code", spread across `apps/desktop/src/updates/DesktopUpdatePolicy.ts`, `apps/desktop/src/updates/DesktopUpdates.ts`, `apps/server/src/cli/policy.ts`, `packages/contracts/src/managedPolicy.ts` and `packages/shared/src/managedPolicyFile.ts`. Four of those files are new upstream; `DesktopUpdates.ts` already existed and only gained the one line.

**What I changed:** I reworded each of the seven lines to say Loom and marked it `// fork: brand`. Nothing went into the allowlist. Upstream's tests check some of these strings word for word, so I updated those expected strings the same way and marked them too. That covers `policy.test.ts`, `update.test.ts`, `selfUpdate.test.ts`, `managedPolicyFile.test.ts` and `updateEverything.logic.test.ts`. Each test still checks the same thing; only the product name changed. `DesktopUpdates.test.ts` also contains "manages T3 Code updates", but there it is input data, not an expected result, so I left it alone. I added ten `brand` rows to `docs/fork/seams.tsv`, one per file, with the number of marked lines.

**Checks I reran:** `check_brand_copy` and `check_seams` both pass. The six affected test files pass (81 passed, 1 skipped). Lint and the format check are clean on the changed files. Nothing is committed.
… (Typechecking apps/server)

Failing check: Typechecking apps/server

"Typechecking apps/server" failed on 14 errors across three test files. The fixes below clear all of them: the apps/server typecheck now passes, `check_seams` passes, and the three test files pass (17 tests).

**Why it failed.** Two upstream changes broke tests:
- **Managed policy (pingdotgg#27197).** `AnalyticsService` and `ServerSelfUpdate.make()` now need a new `ManagedPolicy` service. Two fork-owned tests never provided it, so they didn't typecheck: `apps/server/src/fork/runtime-owner/selfUpdateSwitch.test.ts` and `apps/server/src/fork/telemetry-off/AnalyticsService.test.ts`.
- **New scheduled-task tests.** Upstream added two tests to `apps/server/src/scheduledTasks/ScheduledTaskService.test.ts` that mock `ManagedProjectFolders` with `namedProjectsRoot`. The fork's `file-placement` seam removed that field, and the four older mocks in the same file already carry the seam.

**What I changed.**
- In both fork tests I now provide `ManagedPolicy.layerTest()`, the same way upstream's matching tests do. Upstream's selfUpdate test merges it next to `ServerConfig.layer`; I did the same in the switch test and added it to the platform layers in the telemetry-off test.
- In `ScheduledTaskService.test.ts` I replaced the two new `namedProjectsRoot: "/projects"` lines with the existing `// fork: file-placement` marker line, just as the older four do.
- I raised that file's `file-placement` count in `docs/fork/seams.tsv` from 4 to 6.
… (Running the fork's tests in apps/desktop)

Failing check: Running the fork's tests in apps/desktop

**What failed:** one test in `apps/desktop/src/backend/DesktopServerExposure.test.ts`, "starts local-only, Serve off, when a managed policy keeps clients local". Upstream added it in pingdotgg#27197 along with the managed policy feature. It turns Tailscale Serve on while a policy limits clients to `["desktop"]`, and it expects the choice to be saved but not applied. Instead, `setTailscaleServeEnabled` threw `DesktopTailscaleServeRefusedError` with reason `not-logged-in`.

**Why:** the fork's `tailnet-ownership` seam in `setTailscaleServeEnabled` checks Serve on the machine before saving the setting, and refuses if a Serve claim would fail. Upstream's policy code (`withinPolicy` / `remoteAllowed`) now keeps Serve off whenever the policy keeps clients local. The seam didn't know about that, so it still ran the check. Tailscale isn't logged in on the test machine, so the check refused, though the backend would never have used Serve.

**What I changed:**
- **`apps/desktop/src/backend/DesktopServerExposure.ts`:** the seam's Serve check now runs only when the policy allows remote clients (`input.enabled && remoteAllowed`). I added a `// fork: tailnet-ownership` marker above that statement and a one-line comment explaining why. Upstream code is untouched.
- **`docs/fork/seams.tsv`:** raised that file's marked-line count from 20 to 21.

**Checks run:**
- The test file now passes, 13 of 13.
- `check_seams`, the format check and lint on the file all pass.
- The desktop typecheck printed no errors, but its output ended at the cache-miss line, so I didn't see a final pass/fail result. The integration's full rerun will confirm it.
… (Running the fork's tests in apps/mobile)

Failing check: Running the fork's tests in apps/mobile

**What failed:** In apps/mobile, `src/reactCompilerCoverage.test.ts` failed on "compiles src/features/threads/ThreadSettingsSheet.tsx". The React Compiler skipped the file and reported `PreserveManualMemo: Existing memoization could not be preserved` twice at line 534. No other mobile test failed.

**Why:** Line 534 is a `fork: library` seam: a `discardPendingModel` function wrapped in `useCallback(..., [])`. Upstream's managed-policy commit (pingdotgg#27197) changed the same component, `ThreadSettingsSessionProvider`, so it now runs `runtimeModeChoices` through `withManagedRuntimeModeLimits(..., [config?.managedPolicy])`. After that change the compiler would no longer keep the fork's manual `useCallback`, so it gave up on the whole file. Upstream's own code compiles fine. The fork seam is what tripped the check.

**What I changed:** I edited only the seam lines in `apps/mobile/src/features/threads/ThreadSettingsSheet.tsx`. `discardPendingModel` is now a plain arrow function, the `fork: library` marker is still on it, and the compiler memoizes it itself. Its only body is two state setters, so it stays stable for the `useFocusEffect` in `ThreadSettingsDetailsScreen`. The `useCallback` import is still used there. I didn't touch any upstream code, and the file did not need to go on the bailout list. The full `reactCompilerCoverage.test.ts` now passes (1239/1239), and lint and `check_seams` report nothing on the change.
… (Running the fork's tests in apps/server)

Failing check: Running the fork's tests in apps/server

"Running the fork's tests in apps/server" failed in five files. Two of them, `selfUpdateSwitch.test.ts` and `AnalyticsService.test.ts` (the `ManagedPolicy` errors), already pass with the earlier repair commits. The other six failures, in three files, had three separate causes. All three files now pass, along with `project/handlers.test.ts` (321 tests). I reran only those files, not the whole check. The seam check, lint, format and the apps/server typecheck are clean.

**Switchboard reset-time rows (3 failures in `ClaudeAdapterV2.test.ts`).** Upstream pingdotgg#25438 (88f6113) now reads a reset time from the `(reset after …)` text of any direct 429 `API Error:`. Its own test accepts trailing text and does not check the model. The fork's strict Switchboard parser still rejects three inputs: over thirty days, other model and trailing text. Upstream's reading now supplies a reset for them through the existing `resultFailure.resetAt` fallback, and upstream wins. The seam is still needed because it lets pool recovery override an older account window. So I changed only those three expected values in the `fork: switchboard` table, to upstream's exact value, with a one-line comment. The other rejection rows still expect no reset.

**Read-only allowlist (1 failure in `ClaudeAdapterV2.test.ts`).** This was a fork gap, not a merge break: the same allowlist on `origin/main` was already missing the tool. Fork commit 0b43179 added `t3_project_settings_read`, marked read-only, but never added it to `CLAUDE_READ_ONLY_T3_MCP_ALLOWED_TOOLS`. I added it as a `// fork: project-profiles` seam line, with a matching row in `docs/fork/seams.tsv` and in FORK.md's Packet seams table.

**`t3_project_create` internal error (`linkOrigin.test.ts`, `PeerForwarding.test.ts`).** Fork commit 950273a, also already on `origin/main`, made project creation share the project through `withForkRuntime`. That crashes when no Loom runtime is installed, and these upstream test harnesses don't install one. In the fork helper `shareCreated` in `mcp/toolkits/project/handlers.ts`, a missing runtime now returns an `unconnected` sharing status and keeps the project local, like `McpHttpServer` already does. The change is marked `fork: library-projects`. That helper and its call sites had no seam markers; I added a marker only for the new check.
… (Running the fork's tests in evals)

Failing check: Running the fork's tests in evals

Repaired: the evals check failed because a fork commit changed the device error message without updating this test.

**What failed:** `evals/mcp-tool-use/devices.test.ts` › "denies every device tool with T3's own error when agent device access is off". It checks that each device tool's error starts with upstream's text, "Agent device access is turned off for this environment." The fork's handler returns "…for this project. With the user's authorization, read t3_project_settings_read…" instead.

**Why:** The upstream merge didn't cause this. Fork commit `0b43179c2b` ("fix(projects): manage settings and tool access from chat") made device access project-scoped and agents able to turn it on. It reworded that message in `apps/server/src/mcp/toolkits/device/handlers.ts` and updated `McpDeviceToolkit.test.ts` and `evals/mcp-tool-use/run.test.ts` to match. It never updated `devices.test.ts`, which is an upstream file, so the test still expected the old text. None of those reworded lines have a `fork:` marker.

**What I changed:**
- **`evals/mcp-tool-use/devices.test.ts`:** the expected prefix is now "Agent device access is turned off for this project." and is marked `// fork: project-profiles`. The test still checks every tool and still allows the generic screenshot fallback, so nothing is weakened.
- **`docs/fork/seams.tsv`:** added a `project-profiles` row for this file.
- **`FORK.md`:** added a matching row to the Packet seams table.

`vp test run evals/mcp-tool-use/devices.test.ts` now passes 23/23, `check_seams` passes, and `vp fmt --check` is clean.

**Left as is:** the fork's other reworded lines (the handler message and the two `run.test.ts` lines) still have no `fork:` markers, so a future upstream change near them could silently undo them. They're outside this check, so I didn't touch them.
… (Running the fork's tests in scripts)

Failing check: Running the fork's tests in scripts

**What failed:** In the "Running the fork's tests in scripts" check, 5 of the 81 tests in `scripts/fork/loom.test.ts` failed. These were the four `checks_with_repair` tests, which exited with status 128 (`fatal: 'origin' does not appear to be a git repository`), and "checkpoints an unchecked integration before the runner can lose it", which hit ENOENT on `.git/loom-resolve/checkpoint.md`. No merge conflict caused this: `scripts/fork/` is identical on `origin/main` and on this branch.

**Why:** The tests leak the runner's environment. `.github/workflows/loom-upstream.yml` exports `LOOM_CHECKPOINT=1`, `LOOM_RESOLVE_LOGS`, `LOOM_RESOLVE_JOBS` and `LOOM_REPAIR_DEADLINE` while it runs these checks. The test helper `runSync` passed all of `process.env` to `loom.sh`. With `LOOM_CHECKPOINT=1` set, each repair commit triggered `checkpoint_integration`, which tried `git push origin` from a fixture repo that has no `origin`. The inherited `LOOM_RESOLVE_LOGS` also sent `checkpoint.md` to the runner's logs directory instead of the fixture's `.git/loom-resolve`. The tests had no way to show this before, because they only fail inside the workflow.

**What I changed:** I edited only the fork-owned `scripts/fork/loom.test.ts`. `runSync` now builds its environment from `hostEnv`, which is `process.env` with every `LOOM_*` variable removed, and each test still sets the variables it needs explicitly. No test was skipped or weakened, and the change carries a one-line comment explaining why. With the runner's variables still set, I reran `pnpm exec vp test run scripts/fork/loom.test.ts` and all 81 tests passed; lint and format are clean on the file.
… (Running browser tests in apps/web)

Failing check: Running browser tests in apps/web

I fixed the failing browser-test check. Four tests in `apps/web/src/components/settings/ProjectSettingsPanel.browser.test.tsx` were failing, all in the "project settings scope" group. They timed out waiting for the "Environment scope" button because the page had crashed with `TypeError: Cannot read properties of undefined (reading 'enabled')`, thrown inside `FolderProjectSettings`.

The merge didn't cause this. Fork commit `f2648a08f4`, already on origin/main, made `useLibraryAuthority` (`apps/web/src/fork/project-library/state.ts`) read `entry.entry.enabled` for every environment. Through the `library-projects` seam, `ProjectsSettings` wraps the panel in `FolderProjectSettings`, which calls that hook. Upstream's test builds its own fake environments with no `entry` field, so any test that went through `ProjectsSettings` with a project selected crashed. The four tests were not changed in this merge.

The fix is a test-only seam, because the rules don't allow editing upstream's test data. In the upstream test I added a `// fork: library-projects` mock of `FolderProjectSettings` that renders its children as "folder not in the Library". That gives the upstream tests the plain project panel they expect. It follows the mocks of other fork sections the test already carries (`ProjectFolderLocation`, `ForkSettingsTopics`). I added the matching row to `docs/fork/seams.tsv`. The fork's own code is unchanged.

Checks after the change:
- The browser test file passes: 22 of 22.
- `check_seams` passes.
- The apps/web typecheck passes.
- Lint and format are clean on the test file.
@kylebegeman kylebegeman changed the title chore(fork): integrate upstream v0.1.7-nightly.20261101.4048 (in progress) chore(fork): integrate upstream v0.1.7-nightly.20261101.4048 Nov 2, 2026
@kylebegeman
kylebegeman marked this pull request as ready for review November 2, 2026 06:22
@kylebegeman

Copy link
Copy Markdown
Owner Author

Review of the unattended resolution: pass.

  • Round 1, Typechecking apps/server: REPAIRED
  • Round 1, Running the fork's tests in apps/desktop: REPAIRED
  • Round 1, Running the fork's tests in apps/mobile: REPAIRED
  • Round 1, Running the fork's tests in apps/server: REPAIRED
  • Round 1, Running the fork's tests in evals: REPAIRED
  • Round 1, Running the fork's tests in scripts: REPAIRED
  • Round 1, Running browser tests in apps/web: REPAIRED

I found nothing that blocks this merge: every upstream change I traced survived, every Loom change was reapplied with its fork: marker, and nothing unrelated changed. I read the whole resolution diff: 48 conflicted files in merge ac6a5c75f7 and nine repair commits.

How I checked

  • For each conflicted file I compared the fork's change against the old upstream base with its change against the new upstream. In most files the size matches line for line. Where it didn't, I looked at the file and found upstream had rewritten or removed the code underneath.
  • No conflict markers are left in the tree.
  • The merge made no changes outside the files that conflicted.

Merge resolutions I confirmed

  • Tailscale (server.ts, tailscale.ts, pair.ts, dev-runner.ts, dev-share.ts): Loom's claim and release replace upstream's plain enable and disable on purpose. Upstream's check that the root route is ours before turning Serve off, its new --set-path=/ hints, the not-running message and the new policy refusal in pair all survived.
  • Upstream's managed-policy feature: it sits alongside the Loom seams in every conflict, with an order that makes sense. For example, the runtime-mode ceiling is refused before Library files are restored.
  • Code upstream removed:
    • The Paused sidebar priority went with upstream's unused resolveProjectStatusIndicator, which is why that seam count drops from 8 to 7.
    • Loom's usage-test clock pin went because upstream test(server): pin clock in saved-usage window test pingdotgg/t3code#28603 pins it now. FORK.md and seams.tsv were updated to match.
    • A duplicate Stream import went. The deleted telemetry test was an upstream test that upstream renamed.
  • agentContextBudget.json: Loom's values were kept, plus exactly the 464 bytes upstream added to the MCP tool list (223127 → 223591).

Repair commits I confirmed

  • ClaudeAdapterV2.test.ts: three Switchboard rows now expect a reset time. Upstream fix(server): keep a gateway's Claude reset time on a direct 429 pingdotgg/t3code#25438 now reads a reset time from any direct 429 error text, and Loom's stricter parser still runs first. The other rejection rows are unchanged.
  • Read-only allowlist and shareCreated: both fix gaps that were already on main and showed up in failing tests.
    • t3_project_settings_read was missing from the read-only tool list.
    • Creating a project crashed when no Loom runtime is installed. It now keeps the project local and reports it as not shared.
  • ProviderSessionManager: main (0b43179) had already dropped upstream's preview and device credential comparison, but seams.tsv and the packet doc still described the old behavior. The repair corrected them and restored upstream's test name.
  • Smaller fixes, each limited to its failing check:
    • Managed-policy test layers.
    • The namedProjectsRoot mock.
    • The Serve check now skipped when the policy keeps clients local.
    • The mobile useCallback removed so the React Compiler can compile the file.
    • LOOM_* variables kept out of the script tests.
    • The FolderProjectSettings mock.
    • New product text rebranded to Loom, with matching seams.tsv rows.

Two cosmetic points, neither worth a change: the repair marks each line of a six-line Loom test block separately where one marker above would do, and onnxruntime-web sits after upstream's ffi-rs at the end of a list upstream appends to.

VERDICT: pass

@kylebegeman
kylebegeman merged commit b206f91 into main Nov 2, 2026
@kylebegeman
kylebegeman deleted the integrate/v0.1.7-nightly.20261101.4048 branch November 2, 2026 06:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.