Skip to content

chore(fork): rebase onto upstream d15210cd (2026-09-28) - #22

Closed
jmclaren7 wants to merge 10 commits into
mainfrom
jcs/dreamy-hypatia-la48i2
Closed

jmclaren7 wants to merge 10 commits into
mainfrom
jcs/dreamy-hypatia-la48i2

Conversation

@jmclaren7

Copy link
Copy Markdown
Member

Not for a merge-button merge. This branch is main rebased onto upstream; the intended landing is a history rewrite: git push --force-with-lease=main:980f525f origin jcs/dreamy-hypatia-la48i2:main. The pre-rebase tip is backed up at backup/main-pre-rebase-2026-09-28. The automated session could not perform the force-push itself.

What Changed

  • main rebased onto pingdotgg/t3code d15210cd (fix(web): prevent usage summary shift for unpriced records (fix(web): prevent usage summary shift for unpriced records pingdotgg/t3code#13991)), taking in 310 upstream commits. The fork is now ten commits on top of upstream, one per FORK.md entry.
  • Entry 19 (per-instance usage) re-derived on upstream's new usage design: the instance identity now rides on UsageSource as optional fields and buckets are joined to instances through upstream's sourcePath, so the wire contract gains no version bump and older environments report under each provider's default instance. Web and mobile usage screens rebuilt on it, with ramps for upstream's new Cursor, OpenCode and Antigravity providers.
  • Entry 15: the fork's duplicate Claude config-dir resolver folded into upstream's extended resolveClaudeHomePath; apiKeySource on the probe made optional for upstream's new test.
  • Entries 15, 20, 22: fork JSX adjusted for upstream's new no-raw-colors, no-restyle and no-arbitrary-values lint rules (text-destructive!, scale text tokens, box styling off ScrollArea).
  • Entry 14: seven deleted-workflow conflicts resolved by deleting again; ci.yml unchanged upstream; a note in desktop-artifacts.yml that the Linux leg now also ships a .deb. The previous cycle's pnpm-workspace.yaml repair is retired (upstream removed the placeholder).
  • FORK.md rewritten: new "last rebase" summary, per-entry check notes at d15210cd, and two new superseded rows (the double-count half of 19 by e5a46d6c, the entry 14 repair by 803f94e7). README banner marker refreshed.

Why

The fork syncs to upstream by rebase so git diff upstream/main HEAD stays the authoritative answer to "what does this fork carry". Every drop-check in FORK.md still comes back 0, so every entry is kept; entry 19 was rebuilt rather than force-merged because upstream reworked the same subsystem.

Verified with Node 24: tsc --noEmit clean in all seven packages, vp lint 0 errors over every fork-changed file, vp fmt --check clean, knip:check clean, and the fork-touched test suites pass (server usage/aggregation/ClaudeHome/reactor/registry/probe, server.test.ts worktree/bootstrap/prefix cases, shared git/usage format/usage merge, web usage components and unit files, mobile usage tests).

UI Changes

Usage page and mobile usage screen: a single-instance setup renders as upstream does; only environments with two accounts of one provider gain extra series/rows/columns. Not checked in a browser this run.

Checklist

  • This PR is small and focused (it is a full upstream sync; see FORK.md for the per-entry breakdown)
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

🤖 Generated with Claude Code

https://claude.ai/code/session_01SSDousnH2iGtENjg7KWiBJ


Generated by Claude Code

Copilot AI balanced review requested due to automatic review settings September 28, 2026 00:45

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Usage aggregation incorrectly treats environment-local provider instance IDs as globally unique, which can combine and mislabel unrelated accounts.

Review effort: Balanced
Findings: 1 Medium severity

Open (1)
What changed in this PR

Rebases the fork onto upstream d15210cd, incorporates 310 upstream commits, and re-derives fork-specific functionality. Landing must use the documented force-with-lease workflow rather than a merge-button merge.

Changes:

  • Updates web, desktop, mobile, server, provider, and relay functionality from upstream.
  • Rebuilds per-provider-instance usage attribution across environments.
  • Refreshes fork documentation, workflows, dependencies, packaging, and tests.
File Description
FORK.md, README.md Documents the rebase and retained fork changes.
.github/​** Updates CI/release automation and removes fork-disabled workflows.
apps/​desktop/​** Updates startup, packaging, previews, connections, and update handling.
apps/​mobile/​** Adds device streaming and updates navigation, settings, usage, and native UI.
apps/​server/​** Updates orchestration, providers, persistence, usage, relay recovery, and APIs.
apps/​web/​** Updates chat, settings, usage reporting, previews, and shared UI behavior.
apps/​marketing/​** Refreshes provider assets and download/landing content.
infra/​relay/​** Adds managed-tunnel recovery and associated validation.
packages/​client-runtime/​** Updates shared client state, device integration, and aggregation behavior.
packages/​contracts/​** Extends wire schemas for providers, usage, devices, and orchestration.
packages/​shared/​** Updates usage merging, tracing, readiness, source control, and utilities.
packages/​effect-*, packages/​ssh, packages/​tailscale Updates provider protocols and connectivity support.
scripts/​**, root configuration Updates worktree setup, release checks, dependencies, linting, and tooling.
packaging/​**, patches/​** Refreshes distribution metadata and dependency patches.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread packages/shared/src/usageMerge.ts
jmclaren7 and others added 10 commits September 28, 2026 00:53
Fork Git/GitHub policy sections in AGENTS.md, the About-this-fork banner in README.md, and FORK.md, the authoritative list of what this fork carries on top of upstream. Entries 12 and 13.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LcznayRMN5UxdP5zKNijDG
Standard GitHub-hosted runners, no credentials beyond GITHUB_TOKEN, and only what building and code quality need. ci.yml keeps upstream's check/test/test_server/rust/release_smoke jobs plus knip, drops the mobile jobs and the Blacksmith-only apt-mirror and nightly-release steps. desktop-artifacts.yml builds unsigned desktop artifacts on every push to main and publishes them as pruned desktop-dev prereleases, with update checking disabled at the feed. Every other upstream workflow is deleted. Entry 14 and the workflow half of entry 20.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LcznayRMN5UxdP5zKNijDG
A Claude Code CLI with no login still answers the capabilities probe, with a blank account and tokenSource "none"; that used to render as Authenticated while every turn failed. Classify auth three ways (evidence, explicit none, unknown), report the resolved config directory alongside, show it in the provider card, and document the PowerShell tilde trap. Entry 15.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LcznayRMN5UxdP5zKNijDG
One server setting, worktreeBranchPrefix, applied where the server names a worktree branch. Placeholders carry a t3- marker so a configured prefix can never rename a user's own branch; the matcher accepts the configured and default prefixes; a blank prefix falls back to t3code. Entry 17.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LcznayRMN5UxdP5zKNijDG
Opening a thread cleared its green completed dot immediately. Track a per-thread completion acknowledgement beside last-visited, stamp it on visit, and read it in the sidebar status so the dot survives wake-driven visit bumps. Entry 6.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LcznayRMN5UxdP5zKNijDG
A Commit button on the completion Changed files card opens the commit dialog with only that turn's checkpoint files checked; the regular commit button still selects everything. Entry 5.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LcznayRMN5UxdP5zKNijDG
With the sidebar filtered to one project, the new thread button creates there straight away instead of opening the project picker; its tooltip names the target and drops the scope-unaware shortcut. Unscoped behaviour is unchanged. Entry 18.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PijserGApUwNHjWJ7mqVBH
A GitHub item in the sidebar footer links to this repository; its tooltip shows the build commit and time from two Vite defines. Pairs with the update-feed disable in desktop-artifacts.yml. Entry 20.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LcznayRMN5UxdP5zKNijDG
…bble

Read upstream's ServerProvider.usageLimits where the provider is chosen and where the turn's cost is shown, rendered as percent left with reset countdowns, aged when the popover opens, silent for unavailable snapshots. Web-only. Entry 22.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LcznayRMN5UxdP5zKNijDG
The usage report groups by provider instance rather than provider kind, so two Claude accounts read as two series, rows and columns and their models are listed per instance. Each scanned source carries its instance id, configured name and accent colour; buckets stay upstream's and are joined to instances through the directory they already name, so the wire contract only gains optional fields and older environments report under each provider's default instance. Entry 19.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SSDousnH2iGtENjg7KWiBJ
@jmclaren7
jmclaren7 force-pushed the jcs/dreamy-hypatia-la48i2 branch from 63729ef to 30b7e0e Compare September 28, 2026 00:53
@jmclaren7
jmclaren7 force-pushed the main branch 2 times, most recently from 3eb5ed5 to e885b6e Compare October 4, 2026 00:43
@jmclaren7 jmclaren7 closed this Oct 5, 2026
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.

2 participants