Repository navigation
fix: integrate upstream checkpoint 5e1c23d769b1 - #103
Merged
Merged
Conversation
…g#9564) Co-authored-by: Claude Code <noreply@anthropic.com>
…otgg#9565) Co-authored-by: Claude Code <noreply@anthropic.com>
…ngdotgg#9566) Co-authored-by: Claude Code <noreply@anthropic.com>
pingdotgg#9567) Co-authored-by: Claude Code <noreply@anthropic.com>
…gg#9568) Co-authored-by: Claude Code <noreply@anthropic.com>
…gg#9569) Co-authored-by: Claude Code <noreply@anthropic.com>
pingdotgg#9570) Co-authored-by: Claude Code <noreply@anthropic.com>
Co-authored-by: Claude Code <noreply@anthropic.com>
…tgg#9572) Co-authored-by: Claude Code <noreply@anthropic.com>
…9573) Co-authored-by: Claude Code <noreply@anthropic.com>
…rm (pingdotgg#9574) Co-authored-by: Claude Code <noreply@anthropic.com>
…ingdotgg#9575) Co-authored-by: Claude Code <noreply@anthropic.com>
…gdotgg#9576) Co-authored-by: Claude Code <noreply@anthropic.com>
…#9589) Co-authored-by: Claude Code <noreply@anthropic.com>
…#9770) Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com>
…tgg#9775) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
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.
Lecturn was 26 upstream commits behind (13427ec..5e1c23d). This merge brings them in: the docs rewrite, the Windows host-portability test series, and eight small fixes, with Lecturn naming, thread forking, Stave, Connect multi-account and the fork's mobile styling kept.
What changes
font-lecturn-*weights and the mobile palette.tool.deniedis a valid runtime event type (fix(contracts): include tool.denied in runtime event types pingdotgg/t3code#9770); directory fsync tolerates WindowsEPERM; theme files refuse symlinks on Windows; media paths are canonicalised the same way as their callers; the Linux resource monitor skips unused per-process detail reads (perf(server): skip unused Linux process detail reads pingdotgg/t3code#9768).apps/server/src/testUtils/fakeCli.ts, with symlink and long-temp-dir helpers exported from@lecturn/shared/testing/*.docs/operations/development.md,docs/operations/connect-setup.mdanddocs/user/appearance.md.Fork-specific change to pingdotgg#9773
Upstream's new Codex rule drops cached models whenever a snapshot arrives without them. The fork's managed provider publishes two snapshot shapes upstream does not have, and both would have wiped the cached Codex model list while detection was still failing:
status: "warning"withdiscovery.statustimed-outorerror;discovery.status: "detecting"before it probes.shouldRetainMissingProviderModelsinapps/server/src/provider/Layers/ProviderRegistry.tsnow keeps cached models for a warning snapshot whose discovery isdetecting,timed-outorerror. A completedreadydiscovery still drops retired models, and disabled, signed-out or uninstalled providers still clear. The same clause keeps OpenCode skills and slash commands through those snapshots.ProviderRegistry.test.tscovers the sequence probe timeout → failed detection →detecting(shell and provider phases) →readyfor Codex, the signed-outdetectingcase for Codex and Antigravity, and OpenCode models, skills and slash commands.Resolution notes for review
CodexTextGeneration.test.ts: the fork-only checks of the old shell stub (app-server and model probes,--ignore-rulesworkflow isolation, account routing) are ported into upstream's Node stub. One test now spreadsprocess.envinto its explicit environment so the launcher can findnode.CursorTextGeneration.test.tsandGrokTextGeneration.test.ts: the fork's workflow-cwd isolation check is ported into the stub source.AntigravityInstallation.test.ts: upstream structure with the fork'srealPathexpectations.docs/user/install.mdkeeps the Lecturn installation pointer and leaves out winget/brew/AUR and store links.docs/user/updating.mdpoints mobile users to the TestFlight section of the installation guide instead of "App Store or Google Play releases"; Lecturn has no store release.docs/operations/development.mdlinks the fork README's#developmentsection for installingvp; upstream's#install-vpanchor does not exist here.docs/internals/lecturn-connect.md, keeping the fork's origin-sync, relay-reservation and multi-account sections.docs/operations/development.md(desktop data directories),docs/user/appearance.md(mobile surfaces, account colours),docs/user/thread-sidebar.md(tool activity) andAGENTS.md(ADR andartifacts/rules).@t3tools/*imports in 14 test and helper files, temp prefixes, and the three new docs.Verification
vp fmt --checkover all changed files and the unscopedgit diff --cached --checkpass.panelAnimations.test.tsxpasses. The 49 controller tests pass.apps/server/src/entrypoint.test.ts(symlinked temp dir) and one case inscripts/build-desktop-artifact.test.ts(cross-architecture Windows payload probe).native/resource-monitorRust tests (local rustc is older thansysinforequires); that diff was reviewed by reading. Windows-host behaviour of the portability series cannot be exercised here.UI evidence
Captured on isolated before (fork base) and after stacks. The model-retention change touches no UI source, so the captures were not retaken for it.
tool-shine-before-5e1c23d7-1791191263-1.mp4
tool-shine-after-5e1c23d7-1791191265-1.mp4
panel-navigation-before-5e1c23d7-1791191267-1.mp4
panel-navigation-after-5e1c23d7-1791191270-1.mp4
With panel animations at 400 ms, navigating to a thread whose right panel is open animated the layout over about 300 ms before and snaps on the first frame after. The provider screenshots are the header strip only (machine tabs with the "Checked … ago" and "+" controls): before, the controls sit on a separate "Providers" title row above the tabs; after, they share the tab row. The strip stops above the host's account details. The mobile screenshots show the host's real usage totals and subscription quota.
🤖 Generated with Claude Code
Integrates 26 upstream commits through
5e1c23d769b182018f5bd6d3623a7edec13d26bc. Scope: the first 26 candidates (2e688a5..5e1c23d), linear history with no merges. Net diff accepted..target excluding .repos is 141 files, +5397/-8729 = 14,126 lines, inside both limits (26 of 50 commits, 14,126 of 15,000 lines). Going one commit further to 394e847 gives 15,335 lines and the full 30 gives 15,742, so both exceed the limit.Why this cut is coherent:
What is left for the next batch: pingdotgg#9774 custom model prices, pingdotgg#9794, pingdotgg#9784 and pingdotgg#9805. That keeps the usage-pricing feature and the pingdotgg#9784 regression fix together across contracts, server, client-runtime and web. I read the pingdotgg#9784 diff: it wires the usageLimitSources subscription option in rpc/session.ts and the web/mobile runtime.ts files, refreshes limits on every connected environment in web UsagePage, and touches ClaudeProvider and PullRequestService. It does not touch the mobile usage files changed by pingdotgg#9775, so stopping at 5e1c23d does not strand a fix for anything in this batch.
Risks:
npx lecturn).t3), thenvp fmt --check.-whitespaceentries, because the controller runs an unscopedgit diff --cached --check.font-lecturn-*classes, not the deadfont-t3-*ones, and verify the usage deep link.Nothing in this range touches release.yml, ci.yml or the saga-group, connect-account and thread-fork server surfaces.
Fresh independent review approved tree
60315c3897bf80c8ec5bfbe2f452a1d1cbcea7acafter controller-rerun focused checks. Merge commit required; no squash/rebase.Before:

After:

panel-navigation-before-5e1c23d7-1791191267-1.mp4
panel-navigation-after-5e1c23d7-1791191270-1.mp4
tool-shine-before-5e1c23d7-1791191263-1.mp4
tool-shine-after-5e1c23d7-1791191265-1.mp4
Implemented and independently reviewed by fresh Claude Code agents (claude-fable-5-1 top-level, claude-opus-5 subagents).