Fix degraded integration recovery guidance - #204
Conversation
📝 WalkthroughWalkthroughChangesRelayfile preflight
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
src/mount/relayfile-integration-preflight.test.ts (1)
135-155: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winCover the new state-normalization path.
This fixture only uses canonical lowercase values, so it would still pass if
.trim().toLowerCase()were removed. Add a mixed-case/whitespace case and assert the intended diagnostic formatting.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/mount/relayfile-integration-preflight.test.ts` around lines 135 - 155, Extend the test for ensureFactoryIntegrations with mixed-case and surrounding-whitespace state values, such as state and initialSyncState, to exercise the normalization path. Update the expected rejection assertion to verify the diagnostic displays the normalized lowercase values, while preserving the existing assertions that no connection or wait calls occur.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@src/mount/relayfile-integration-preflight.test.ts`:
- Around line 135-155: Extend the test for ensureFactoryIntegrations with
mixed-case and surrounding-whitespace state values, such as state and
initialSyncState, to exercise the normalization path. Update the expected
rejection assertion to verify the diagnostic displays the normalized lowercase
values, while preserving the existing assertions that no connection or wait
calls occur.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: dead6eaa-169f-4cd9-bb0a-cc38f9cbe03c
📒 Files selected for processing (2)
src/mount/relayfile-integration-preflight.test.tssrc/mount/relayfile-integration-preflight.ts
Stale-PR triage: REVIVETriage sweep of the 6 open PRs (all untouched since 2026-07-21..07-30), evaluated against Still wanted. Closes #203, which is still OPEN. Not superseded. There is no Rebases cleanly. Tested in an isolated detached worktree, not the shared checkout: CI. Cost to revive: lowest of the six. 29 additions, 0 deletions, 2 files, Recommendation only — I do not close or merge. Posted by an automated triage lane. |
Refreshed against current main — one real test failure. Not merging.This PR was a merge candidate on the principal's rule (green CI, zero unresolved review threads). It was not safe: its green was from 2026-07-29 and the branch was 57 commits behind main, so that result said nothing about today's main. I updated the branch (
The failure, This looks like a genuine integration conflict rather than flake — a deterministic state-machine phase mismatch, not a timeout — most likely against That should be confirmed rather than assumed: re-run the single test in isolation and check its exit code before treating it as real, because a failing set that varies run-to-run while each member passes alone is CPU contention on a shared machine, not a defect. Owner: |
Fixes #203.
When Relayfile reports an integration as
degradedafter initial sync is alreadycomplete, Factory now directs the operator to have a workspace owner repair or reconnect the provider. It no longer tells them to wait for an initial sync that has finished.Verification:
npx vitest run src/mount/relayfile-integration-preflight.test.ts(10 passed)npm run buildgit diff --checkSummary by cubic
Clarifies operator guidance when an integration is degraded after initial sync completes. Previously we told operators to wait; now we direct them to have a workspace owner repair or reconnect the provider.
state: degradedandinitialSyncState: complete,notReadyMessageshows a repair/reconnect message and avoids “wait for initial sync.”Written for commit c558869. Summary will update on new commits.