Skip to content

fix(settings): hide Guest links without T3 Connect - #474

Merged
dbalders merged 2 commits into
mainfrom
fix/hide-guest-links-20261102
Nov 2, 2026
Merged

dbalders merged 2 commits into
mainfrom
fix/hide-guest-links-20261102

Conversation

@dbalders

@dbalders dbalders commented Nov 2, 2026 •

Copy link
Copy Markdown
Owner

Summary

Hide the Guest links row and its empty Beta section in builds without T3 Connect configuration, and exclude it from settings search using the existing cloud-only filter.

Why

Harness showed a Guest links beta switch even though it does not use T3 Connect. The unsupported control should stay hidden.

The existing saved-usage retention test now uses a clock matched to its August fixture. Its live clock had aged that fixture beyond the 92-day retention cutoff and blocked CI; production usage behavior is unchanged.

Validation

  • vp check passed in the original preflight.
  • vp run typecheck passed in the original preflight; affected packages passed again through vp run check:changed after the test-clock fix.
  • Relevant tests passed: 30 settings tests, 40 usage-service tests; full vp run preflight:server: 501 files, 5,767 tests, 6 existing skips. Earlier non-server workspace tests passed.
  • Native mobile lint: not applicable; no native mobile changes.
  • Isolated macOS desktop: opened Settings -> Labs and confirmed Guest links and Beta are absent, while Experimental and Legacy remain.
  • Claude Opus 5.5 high cross-model review is clean for 2a360a1daa. CodeRabbit's request to restore the no-cloud remote-server toggle was explicitly declined as outside the requested Harness behavior.

Risk and Recovery

Users of an already-linked remote server will also have this control hidden in clients without cloud configuration; that is intentional for this Harness request. No stored settings, permissions, production usage code, or data migrations change. Revert this PR to restore the previous visibility.

UI Changes

Before (user-provided capture):

Guest links beta setting before

After:

Labs without the Guest links beta section

Release and Deployment Impact

None beyond including the UI change in a future Harness build. No release, deployment, signing, packaging, or version changes.

Upstream Alignment

Intentional Harness difference: cloud-dependent Guest links controls stay hidden when T3 Connect is not configured. The configured-cloud path is preserved.

Checklist

  • The PR is ready for review and is not a draft.
  • The change is focused; the minimal test-clock correction unblocks the existing CI failure.
  • New search visibility has regression coverage; the UI was checked in desktop.
  • No secrets, credentials, private URLs, or sensitive logs are included.
  • Actionable review findings have been resolved or explicitly answered.

Implementation: GPT-6.1 Sol via Codex

@coderabbitai

coderabbitai Bot commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Recent review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between dd0d5ac and 2a360a1.

Files selected for processing: 4
  • apps/server/src/usage/UsageService.test.ts
  • apps/web/src/components/settings/LabsSettingsPanel.tsx
  • apps/web/src/components/settings/settingsSearch.test.ts
  • apps/web/src/components/settings/settingsSearchCatalog.ts

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

Walkthrough

The pull request fixes the clock in a saved-usage test. It also gates the Beta settings section and guest-links search availability on cloud public configuration.

Changes: Saved-usage test

Layer / File(s) Summary
Fix the saved-usage test clock
apps/server/src/usage/UsageService.test.ts
The test uses it.effect and sets the clock to 2026-08-02T12:00:00Z before setup.

Cloud-only guest links

Layer / File(s) Summary
Gate guest links on cloud availability
apps/web/src/components/settings/LabsSettingsPanel.tsx, apps/web/src/components/settings/settingsSearchCatalog.ts, apps/web/src/components/settings/settingsSearch.test.ts
The Beta section renders only when cloud public config is present. The guest-links catalog entry is marked cloudOnly, and the test checks that guest-links is filtered when controls are unavailable.

Estimated code review effort: 2 (Simple) | ~8 minutes

Change: Bug fix

Suggested reviewers: juliusmarminge

Merge Risk: Low · up to 2a360

Guest links settings remain hidden for some already-linked, directly paired environments. Restore access for those environments while keeping the empty Beta section hidden elsewhere.

Pre-merge checks: Passed 5
Check name Status Explanation
Title check Passed The title clearly and concisely describes the primary change: hiding Guest links when T3 Connect is unavailable.
Docstring Coverage Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Description check Passed The description follows the repository template closely. It covers Summary, Why, Validation, Risk and Recovery, UI Changes, Release and Deployment Impact, Upstream Alignment, and Checklist, and it giv…
Full details: Docstring Coverage

Explanation

Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 1 functions across 4 files.

Full details: Description check

Explanation

The description follows the repository template closely. It covers Summary, Why, Validation, Risk and Recovery, UI Changes, Release and Deployment Impact, Upstream Alignment, and Checklist, and it gives concrete detail for each. The change is hidden Guest links row and empty Beta section in builds without T3 Connect configuration, plus search exclusion through the cloud-only filter. Validation lists the commands run, the test counts, and a manual macOS desktop check. The description states that native mobile lint does not apply. Release impact is stated as none beyond a future build. The UI section has before and after images. The template's attribution footer is present in the form of 'Implementation: GPT-6.1 Sol via Codex', which matches the requested footer. Two minor gaps remain. The 'Validation' checklist items are marked as passed, but the 'vp check' and typecheck claims refer to an original preflight that predates the test-clock fix, and the description says the affected packages were checked again, which covers this. The Checklist item for regression coverage says the search visibility has coverage, which the summary supports through the settingsSearch test change. The description does not clearly state whether the 'vp check' and 'vp run typecheck' commands were rerun after the final commit. It also does not state the exact commit under review in the Summary section, though it mentions commit 2a360a1 under Validation. Overall the description is mostly complete and specific.

Finishing Touches
Generate docstrings
  • Commit to this branch
  • Create a new PR
Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@github-actions github-actions Bot added the size:XS 0-9 effective changed lines (test files excluded in mixed PRs). label Nov 2, 2026
@dbalders

dbalders commented Nov 2, 2026 •

Copy link
Copy Markdown
Owner Author

Cross-model review

Implementation (PR footer): GPT-6.1 Sol via Codex
Reviewer: Claude claude-opus-5-5 (high) via autoreview, P2 and above
Reviewed commit: 2a360a1daa6bf9db6e6fc88e04df78a75d3213f3
Result: scoped-clean

autoreview scoped-clean: no accepted/actionable findings in the selected Git scope and priority
overall: patch is correct (0.72)
The Labs panel now shows the Beta/guest-links section only when the build has a cloud config. Marking the matching search catalog entry cloudOnly: true and adding guest-links to the test's expected list are consistent with that. The UsageService test moves from it.live to it.effect with a fixed TestClock time, which makes the time-window assertions independent of the real date. Two things could not be checked without the repository files: whether GuestLinksRow is now unused (a strict unused-code lint or TypeScript setting could flag it), and whether the test or the code under test waits on timers or compares against real file modification times. Neither is visible in the diff, so neither counts as an actionable defect.


Automated cross-model review, updated 2026-11-02T18:03:22+00:00.

@dbalders dbalders left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

TritonAI Review

Model: api-glm-5.3 · Reasoning: high.

No actionable findings in the inspected changes.

Reviewed 89a5a98f52ef60611bc70e3d4dd3e39dd8702f65 against dd0d5acfd1f1172f99aafc0650be29ef56f9c41f.

Reviewed 3 file(s) together as one PR.

Changes

  • PR: Hides the Labs "Beta" section (Guest links) in builds without T3 Connect cloud configuration by conditionally rendering the section in LabsSettingsPanel, and marks the "guest-links" settings-search catalog entry as cloudOnly so it is excluded from search via the existing cloud-only filter. Updates the settings search test to assert "guest-links" is gated. The change is focused, matches the PR intent, and follows existing patterns (hasCloudPublicConfig gate, cloudOnly flag, gatedIds test set).

CI snapshot

Check runs:
- Windows Regression Tests: status=completed conclusion=skipped app=
- Sync PR size label definitions: status=completed conclusion=skipped app=
- Label PR size: status=completed conclusion=success app=
- Mobile Native Static Analysis: status=completed conclusion=skipped app=
- Macroscope - UI Consistency: status=completed conclusion=skipped app=
- CodeRabbit: status=completed conclusion=neutral app=
- Macroscope - Effect Service Conventions: status=completed conclusion=skipped app=
- Macroscope - Correctness Check: status=completed conclusion=skipped app=
- Release Smoke: status=in_progress conclusion=none app=
- Test Server 1: status=in_progress conclusion=none app=
- Test Server 2: status=in_progress conclusion=none app=
- Test Server 5: status=in_progress conclusion=none app=
- Preflight: status=in_progress conclusion=none app=
- Rust: status=in_progress conclusion=none app=
- Test Server 3: status=in_progress conclusion=none app=
- Test Server 4: status=in_progress conclusion=none app=
- Test: status=in_progress conclusion=none app=
- Prepare PR size config: status=completed conclusion=success app=
- Mobile Native Changes: status=completed conclusion=success app=
- Native fingerprint diff: status=completed conclusion=success app=
- Windows Test Scope: status=completed conclusion=success app=

CI is reported separately. This code review does not claim to have run tests.

Comment /triton-review to request a fresh review. Findings are advisory; GitHub branch protection remains authoritative.

@dbalders dbalders left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

TritonAI Review

Model: api-glm-5.3 · Reasoning: high.

No actionable findings in the inspected changes.

Reviewed 2a360a1daa6bf9db6e6fc88e04df78a75d3213f3 against dd0d5acfd1f1172f99aafc0650be29ef56f9c41f.

Reviewed 4 file(s) together as one PR.

Changes

  • PR: This PR hides the Guest links beta row (and the now-empty Beta section) in Labs settings when the build has no T3 Connect cloud configuration, and marks the guest-links settings search entry as cloud-only so it is excluded from search in non-cloud builds, updating the gated-ids test accordingly. Separately, it converts the saved-usage retention test from it.live to it.effect and pins the Effect TestClock to 2026-08-02 so the August 2026 fixture stays within the 92-day retention window regardless of the real wall clock; production behavior is unchanged. The changes are small, focused, and follow existing patterns (the cloudOnly catalog flag and gated search test already existed for t3-connect).

CI snapshot

Check runs:
- Mobile Native Static Analysis: status=completed conclusion=skipped app=
- Mobile Native Changes: status=completed conclusion=success app=
- Test Server 4: status=in_progress conclusion=none app=
- Test Server 3: status=in_progress conclusion=none app=
- Release Smoke: status=in_progress conclusion=none app=
- Test Server 1: status=in_progress conclusion=none app=
- Test Server 2: status=in_progress conclusion=none app=
- Rust: status=in_progress conclusion=none app=
- Test Server 5: status=in_progress conclusion=none app=
- Preflight: status=in_progress conclusion=none app=
- Test: status=in_progress conclusion=none app=
- Macroscope - UI Consistency: status=completed conclusion=skipped app=
- Macroscope - Effect Service Conventions: status=completed conclusion=skipped app=
- CodeRabbit: status=in_progress conclusion=none app=
- Native fingerprint diff: status=completed conclusion=success app=
- Macroscope - Correctness Check: status=completed conclusion=skipped app=
- Remove preview download: status=completed conclusion=skipped app=
- Deploy web preview: status=completed conclusion=skipped app=
- Windows Regression Tests: status=in_progress conclusion=none app=
- Sync PR size label definitions: status=completed conclusion=skipped app=
- Label PR size: status=completed conclusion=success app=
- Publish anonymous download: status=completed conclusion=skipped app=
- Deploy relay preview: status=completed conclusion=skipped app=
- Build macOS Apple Silicon preview: status=completed conclusion=skipped app=
- Windows Test Scope: status=completed conclusion=success app=
- Native fingerprint diff: status=completed conclusion=cancelled app=
- Prepare PR size config: status=completed conclusion=success app=

CI is reported separately. This code review does not claim to have run tests.

Comment /triton-review to request a fresh review. Findings are advisory; GitHub branch protection remains authoritative.

@coderabbitai coderabbitai Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

  • Fix comments: Fix CodeRabbit comments on this PR

@github-actions

github-actions Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 4.9 KiB 5.0 KiB +30 B (+0.6%) 6.8 KiB ✅
Codex Thread snapshot wire 3.8 KiB 3.8 KiB 0 B (0.0%) 4.9 KiB ✅
Codex Live turn WebSocket wire 1.2 KiB 1.2 KiB +30 B (+2.5%) 2.0 KiB ✅
Codex Live turn WebSocket decoded 20.8 KiB 20.9 KiB +41 B (+0.2%) 29.3 KiB ✅
Codex Live turn messages 1 2 +1 (+100.0%) 8 ✅
Claude Total thread wire 5.0 KiB 5.0 KiB −7 B (−0.1%) 6.8 KiB ✅
Claude Thread snapshot wire 3.8 KiB 3.8 KiB 0 B (0.0%) 4.9 KiB ✅
Claude Live turn WebSocket wire 1.2 KiB 1.2 KiB −7 B (−0.6%) 2.0 KiB ✅
Claude Live turn WebSocket decoded 21.2 KiB 21.2 KiB 0 B (0.0%) 29.3 KiB ✅
Claude Live turn messages 2 2 0 (0.0%) 8 ✅

Baseline: dd0d5ac · PR result: 2a360a1 · 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: 108.5 KiB
  • Claude decoded thread snapshot: 108.8 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@dbalders
dbalders merged commit 4429dcc into main Nov 2, 2026
31 of 32 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XS 0-9 effective changed lines (test files excluded in mixed PRs).

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant