Skip to content

chore(release): sync upstream main for RTVision 0.0.54 - #59

Merged
kalvenschraut merged 57 commits into
rtvisionfrom
sync/upstream-rtvision-0.0.54
Sep 15, 2026
Merged

kalvenschraut merged 57 commits into
rtvisionfrom
sync/upstream-rtvision-0.0.54

Conversation

@kalvenschraut

Copy link
Copy Markdown
Member

Sync rtvision with pingdotgg/t3code main through c1b221041, bringing 55 upstream commits into the next RTVision release. Two commits: an import of upstream main with conflicts taken from upstream, then an overlay that restores the RTVision integrations on top.

What arrives from upstream

Features

Fixes and performance

What the overlay keeps

Gitea provider registration and the fork's GitLab remote-URL parsing next to upstream's title-link decoding; Vim navigation in the sidebar and timeline next to upstream's custom snooze dialog and queued-message icons; inline CI runs inside upstream's new collapsible Checks section; Vim keybinding docs ahead of the new upstream sections; the sshRuntime, giteaAttachments, and releasePackage shared exports next to upstream's legacyCliLauncher. Two follow-on fixes: the server route test layer pipe hit the twenty-operator limit, so the last two provides fold into one, and the title evaluation script now provides the Gitea CLI the registry requires.

The fork's release.yml guard, RTVision release workflow, and GitHub-hosted CI runners are untouched. Upstream's CI change only adds a preview-bundle script test, which passes locally.

Validation

Typecheck passes for web, server, desktop, mobile, contracts, shared, and client-runtime. Focused tests pass: 98 web files (1479 tests), 77 server files (1520), 67 client-runtime files (835), 32 desktop files (560), plus shared. Lint and formatting pass on the overlay files. Browser verification was not done. No version bump is included; bump apps/server/package.json on rtvision after merge to trigger the RTVision release workflow.

Written by Claude Fable 5.1 through Claude Code in T3 Code.

🤖 Generated with Claude Code

shivamhwp and others added 30 commits September 14, 2026 12:39
…1407)

Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com>
…de_modules (pingdotgg#11750)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…og (pingdotgg#11753)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
… only (pingdotgg#11770)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…e palette open (pingdotgg#11762)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
… on the clone (pingdotgg#11774)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
…1765)

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
…nect login (pingdotgg#11794)

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
…ingdotgg#11811)

Co-authored-by: Bil0000 <bilal.bakr.elsherif@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…rets (pingdotgg#11760)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
bmdavis419 and others added 15 commits September 15, 2026 05:12
…tgg#11679)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
…ead (pingdotgg#11852)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…ingdotgg#11883)

Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com>
…dotgg#11906)

Co-authored-by: T3 Code Test <t3code-test@example.com>
Merge pingdotgg/t3code main at c1b2210 into rtvision. Conflicted files
take the upstream side here; the following commit restores the RTVision
integrations on top.
Restore the fork behavior on top of the upstream import:

- Gitea provider registration, Git driver mock, and the fork's GitLab
  remote-URL parsing alongside upstream's title link decoding.
- Vim navigation imports in the sidebar and timeline next to upstream's
  custom snooze dialog and queued-message icons.
- Inline CI runs inside upstream's new collapsible Checks section on the
  pull request summary tab.
- Vim keybinding docs ahead of upstream's composer, PR, and iPad sections.
- The sshRuntime, giteaAttachments, and releasePackage shared exports next
  to upstream's legacyCliLauncher export.
- The server route test layer pipe reached the twenty-operator limit, so
  the last two provides fold into one; the title evaluation script now
  provides the Gitea CLI the registry requires.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@kalvenschraut

Copy link
Copy Markdown
Member Author

@coderabbitai review

This sync is over your file limit, so please focus on the overlay commit e653558, which is the only hand-written part: apps/server/src/sourceControl/GitLabSourceControlProvider.ts, apps/server/src/sourceControl/SourceControlProviderRegistry.test.ts, apps/server/src/server.test.ts, apps/server/scripts/evaluate-thread-titles.ts, apps/web/src/components/Sidebar.tsx, apps/web/src/components/chat/MessagesTimeline.tsx, apps/web/src/components/pullRequest/PullRequestDetailPanel.tsx, apps/web/src/components/pullRequest/PullRequestSummaryTab.tsx, docs/user/keybindings.md, and packages/shared/package.json. The import commit 4b1b372 is upstream main taken verbatim.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL 📱 Native Change Changes the native fingerprint; merging blocks production OTAs until a new store build ships. labels Sep 15, 2026
@coderabbitai

coderabbitai Bot commented Sep 15, 2026

Copy link
Copy Markdown
🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

git show --no-ext-diff --format=fuller --stat e6535588d
printf '\n--- changed files ---\n'
git diff-tree --no-commit-id --name-status -r e6535588d
printf '\n--- overlay diff ---\n'
git diff --no-ext-diff --find-renames e6535588d^ e6535588d -- \
  apps/server/src/sourceControl/GitLabSourceControlProvider.ts \
  apps/server/src/sourceControl/SourceControlProviderRegistry.test.ts \
  apps/server/src/server.test.ts \
  apps/server/scripts/evaluate-thread-titles.ts \
  apps/web/src/components/Sidebar.tsx \
  apps/web/src/components/chat/MessagesTimeline.tsx \
  apps/web/src/components/pullRequest/PullRequestDetailPanel.tsx \
  apps/web/src/components/pullRequest/PullRequestSummaryTab.tsx \
  docs/user/keybindings.md \
  packages/shared/package.json

printf '\n--- outlines ---\n'
ast-grep outline apps/server/src/sourceControl/GitLabSourceControlProvider.ts --view expanded || true
ast-grep outline apps/server/src/sourceControl/SourceControlProviderRegistry.test.ts --view expanded || true
ast-grep outline apps/server/src/server.test.ts --view expanded || true
ast-grep outline apps/server/scripts/evaluate-thread-titles.ts --view expanded || true
ast-grep outline apps/web/src/components/Sidebar.tsx --view expanded || true
ast-grep outline apps/web/src/components/chat/MessagesTimeline.tsx --view expanded || true
ast-grep outline apps/web/src/components/pullRequest/PullRequestDetailPanel.tsx --view expanded || true
ast-grep outline apps/web/src/components/pullRequest/PullRequestSummaryTab.tsx --view expanded || true

Length of output: 60116


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '--- GitLab provider and CLI contracts ---'
sed -n '1,290p' apps/server/src/sourceControl/GitLabSourceControlProvider.ts
ast-grep outline apps/server/src/sourceControl/GitLabCli.ts --view expanded || true
rg -n -C 4 'listMergeRequests\s*:|getMergeRequest\s*:|function listMergeRequests|function getMergeRequest|repositoryUrl|repository:' \
  apps/server/src/sourceControl/GitLabCli.ts apps/server/src/sourceControl \
  -g '*.ts'

printf '%s\n' '--- Provider input and registry context ---'
rg -n -C 4 'interface SourceControl.*Input|type SourceControl.*Input|remoteUrl|baseUrl' \
  apps/server/src/sourceControl/SourceControlProvider.ts \
  apps/server/src/sourceControl/SourceControlProviderRegistry.ts \
  apps/server/src/sourceControl -g '*.ts'

printf '%s\n' '--- Command bus and Vim timeline contracts ---'
ast-grep outline apps/web/src/vim/commandBus.ts apps/web/src/vim/VimTimeline.tsx --view expanded || true
sed -n '1,240p' apps/web/src/vim/commandBus.ts
sed -n '1,300p' apps/web/src/vim/VimTimeline.tsx
rg -n -C 3 '<MessagesTimeline|MessagesTimeline\s*\(' apps/web/src -g '*.tsx'

printf '%s\n' '--- Pull request dependency and mention contracts ---'
ast-grep outline \
  apps/web/src/components/pullRequest/pullRequestDependencyNavigation.logic.ts \
  apps/web/src/components/pullRequest/PullRequestBranchMenu.tsx \
  apps/web/src/components/pullRequest/PullRequestMentionProvider.tsx \
  apps/web/src/components/pullRequest/PullRequestChecksPopover.tsx \
  apps/web/src/components/pullRequest/PullRequestCiRuns.tsx --view expanded || true
sed -n '1,260p' apps/web/src/components/pullRequest/pullRequestDependencyNavigation.logic.ts
sed -n '1,280p' apps/web/src/components/pullRequest/PullRequestBranchMenu.tsx
sed -n '1,240p' apps/web/src/components/pullRequest/PullRequestMentionProvider.tsx
rg -n -C 3 'function PullRequestUnavailable|PullRequestUnavailable|browserUrl|gitHubUrl' \
  apps/web/src/components/pullRequest -g '*.tsx'
rg -n -C 3 'PullRequestChecksPopover\s*\(' apps/web/src/components/pullRequest -g '*.tsx'
rg -n -C 3 'PullRequestCiRuns\s*\(' apps/web/src/components/pullRequest -g '*.tsx'

Length of output: 188486


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '--- GitLab CLI ---'
rg -n -C 10 'export class GitLabCli|interface GitLabCli|listMergeRequests|getMergeRequest|repositoryUrl' \
  apps/server/src/sourceControl/GitLabCli.ts
printf '%s\n' '--- GitLab provider tests ---'
sed -n '1,330p' apps/server/src/sourceControl/GitLabSourceControlProvider.test.ts
printf '%s\n' '--- GitLab mounted-host fixtures and tests ---'
rg -n -C 5 'gitlab.*\/|\/gitlab|repositoryUrl|nameWithOwner' \
  apps/server/src/sourceControl/GitLabCli.test.ts \
  apps/server/src/sourceControl/GitLabSourceControlProvider.test.ts \
  apps/server/src/sourceControl/SourceControlProviderRegistry.test.ts

printf '%s\n' '--- Selected PullRequest components ---'
sed -n '110,190p' apps/web/src/components/pullRequest/PullRequestChecksPopover.tsx
sed -n '160,250p' apps/web/src/components/pullRequest/PullRequestCiRuns.tsx
sed -n '9400,9530p' apps/web/src/components/ChatView.tsx
sed -n '4240,4325p' apps/web/src/components/Sidebar.tsx

printf '%s\n' '--- Reference history for exact overlay changes ---'
git blame -L 20,61 e6535588d -- apps/server/src/sourceControl/GitLabSourceControlProvider.ts
git diff --no-ext-diff e6535588d^ e6535588d --check
git status --short

Length of output: 68354


@kalvenschraut I found one correctness issue in the overlay commit.

  • apps/server/src/sourceControl/GitLabSourceControlProvider.ts, Lines 48-59: repositoryFromRemoteUrl does not remove the configured GitLab base path from an HTTP(S) remote. For a GitLab instance at https://forge.example/gitlab and remote https://forge.example/gitlab/team/repo.git, it produces repository: "gitlab/team/repo" and repositoryUrl: "https://forge.example/gitlab/gitlab/team/repo". GitLabCli passes this selector to glab --repo, so list and get MR requests fail for path-mounted GitLab installations. Parse baseUrl and remove its pathname from a matching HTTP(S) remote before constructing both values. Add a mounted-base-URL test with this case.

I limited the review to commit e6535588d and the requested files.

⚠️ Action not completed

Review skipped: 312 files exceed the limit of 300.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@kalvenschraut

kalvenschraut commented Sep 15, 2026

Copy link
Copy Markdown
Member Author

@coderabbitai Thanks. That repositoryFromRemoteUrl finding is real, but the function is byte-identical to what rtvision already ships (introduced in e638a7b on 2026-09-05). The overlay only re-places it beside upstream's new decodeLinkSubject after the merge conflict; no lines of it changed. A sync PR is the wrong place to change fork behavior, so the fix goes in its own follow-up PR. Please treat it as out of scope here.

@coderabbitai

coderabbitai Bot commented Sep 15, 2026

Copy link
Copy Markdown

Tip

For best results, initiate chat on the files or code changes.

@kalvenschraut Thanks for the clarification. The repositoryFromRemoteUrl behavior predates this PR and the overlay did not modify it. The separate tracked issue is the correct place for the fix. I will treat the finding as out of scope for this sync PR.

🐇


✏️ Learnings added
Learnt from: kalvenschraut
URL: https://github.com/RTVision/t3code/pull/59

Timestamp: 2026-09-15T16:31:48.028Z
Learning: For RTVision sync PRs, do not report a pre-existing fork behavior as a finding when the overlay only repositions byte-identical code during conflict resolution. Review the behavior in the separate follow-up issue or PR instead.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

You are interacting with an AI system.

@coderabbitai

coderabbitai Bot commented Sep 15, 2026

Copy link
Copy Markdown

Tip

For best results, initiate chat on the files or code changes.

@kalvenschraut Thanks for the clarification. I agree that this behavior predates the overlay and is out of scope for this sync PR. I have withdrawn the finding.

Would you like me to open a follow-up GitHub issue for the mounted GitLab base-path case?

🐇


🧠 Learnings used
Learnt from: kalvenschraut
URL: https://github.com/RTVision/t3code/pull/59

Timestamp: 2026-09-15T16:31:48.090Z
Learning: For RTVision sync PRs, do not report a pre-existing fork behavior as a finding when the overlay only repositions byte-identical code during conflict resolution. Review the behavior in the separate follow-up issue or PR instead.

You are interacting with an AI system.

@github-actions

Copy link
Copy Markdown

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 13.6 KiB 13.6 KiB +42 B (+0.3%) 15.1 KiB
Codex Thread snapshot wire 7.0 KiB 7.1 KiB +8 B (+0.1%) 7.3 KiB
Codex Live turn WebSocket wire 6.5 KiB 6.6 KiB +34 B (+0.5%) 7.8 KiB
Codex Live turn WebSocket decoded 57.0 KiB 57.1 KiB +44 B (+0.1%) 66.4 KiB
Codex Live turn messages 9 10 +1 (+11.1%) 21
Claude Total thread wire 13.6 KiB 13.6 KiB −3 B (−0.0%) 15.1 KiB
Claude Thread snapshot wire 7.1 KiB 7.1 KiB +10 B (+0.1%) 7.3 KiB
Claude Live turn WebSocket wire 6.5 KiB 6.5 KiB −13 B (−0.2%) 7.8 KiB
Claude Live turn WebSocket decoded 57.8 KiB 57.8 KiB 0 B (0.0%) 66.4 KiB
Claude Live turn messages 9 9 0 (0.0%) 21

Baseline: eeaa19b · PR result: e653558 · 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.

@kalvenschraut

Copy link
Copy Markdown
Member Author

@coderabbitai approve

All CI checks passed on e653558 (Check, Test, Test Server 1-3, Rust, Release Smoke, mobile static analysis). Your overlay review found one issue, which is pre-existing fork code unchanged by this sync and tracked for a separate PR.

@coderabbitai

coderabbitai Bot commented Sep 15, 2026

Copy link
Copy Markdown

@kalvenschraut Approved. The reviewed overlay has no unresolved in-scope findings. The mounted GitLab base-path behavior remains excluded because it predates this sync and is tracked separately.


🧠 Learnings used
Learnt from: kalvenschraut
URL: https://github.com/RTVision/t3code/pull/59

Timestamp: 2026-09-15T16:31:48.090Z
Learning: For RTVision sync PRs, do not report a pre-existing fork behavior as a finding when the overlay only repositions byte-identical code during conflict resolution. Review the behavior in the separate follow-up issue or PR instead.
✅ Action performed

Comments resolved and changes approved.

@kalvenschraut
kalvenschraut merged commit c7db766 into rtvision Sep 15, 2026
18 checks passed
@kalvenschraut
kalvenschraut deleted the sync/upstream-rtvision-0.0.54 branch September 15, 2026 16:37
kalvenschraut added a commit that referenced this pull request Sep 15, 2026
Bump release package versions to 0.0.54 so the RTVision release workflow
builds installers, CLI archives, and the @rtvision/t3 npm tarball for the
upstream sync in #59 and the fixes in #57 and #58.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

📱 Native Change Changes the native fingerprint; merging blocks production OTAs until a new store build ships. size:XXL 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.