Clarify managed workspace wake progress - #48

Merged
logancsack merged 2 commits into
mainfrom
fix/clear-workspace-wake-progress
Aug 3, 2026
Merged

Clarify managed workspace wake progress#48
logancsack merged 2 commits into
mainfrom
fix/clear-workspace-wake-progress

Conversation

@logancsack

@logancsacklogancsack commented Aug 3, 2026

Copy link
Copy Markdown
Owner

Problem

A cold managed-workspace wake can take about a minute, but the pre-app shell repeated one static message. Customers could not distinguish healthy wake progress from a hung page.

Solution

  • replace the static startup card with a lifecycle-driven three-stage wake surface
  • set an honest about-one-minute expectation and show real elapsed time after 10 seconds
  • surface a clear delayed state after 75 seconds while automatic retries continue
  • add restrained progress motion with reduced-motion support and phase-aware announcements
  • keep the failure retry path and automatic transition into the app

Verification

  • pnpm exec vp test run apps/web/src/managedDevPc.test.ts — 27 passed
  • pnpm --filter @t3tools/web typecheck — passed
  • pnpm exec vp lint apps/web/src/managedDevPc.ts apps/web/src/managedDevPc.test.ts — passed
  • pnpm exec vp fmt --check apps/web/src/managedDevPc.ts apps/web/src/managedDevPc.test.ts apps/web/src/index.css — passed
  • isolated full-stack pairing and app load — passed, zero console errors
  • mocked managed bootstrap QA at 1440x900 and 390x844, light and dark themes — passed, zero console errors
  • screenshots retained locally as output/playwright/wake-machine-desktop.png, wake-machine-mobile.png, wake-connection-desktop.png, wake-delayed-mobile.png, and wake-connection-mobile-dark.png

Impact

No schema, infrastructure, or security-boundary changes. This changes only the managed client's pre-React wake presentation. Aldo staging will consume it through a separately pinned immutable release after merge.

Summary by CodeRabbit

  • New Features

    • Added a staged progress experience when waking managed development environments.
    • Displays phase-specific titles, descriptions, elapsed timing, and delayed-state messaging.
    • Improved accessibility with clear progress semantics and phase-aware announcements.
    • Added animated visual progress and retry support.
  • Bug Fixes

    • Wake progress now resets correctly after resume interaction and advances through machine, connection, and workspace stages.

@cursor

cursorBot commented Aug 3, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@github-actionsgithub-actionsBot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Aug 3, 2026
@coderabbitai

coderabbitaiBot commented Aug 3, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@logancsack, you've reached your PR review limit, so we couldn't start this review.

Next review available in:49 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: f2099962-cb73-46ea-b7e5-db390e44dfd7

📥 Commits

Reviewing files that changed from the base of the PR and between d17ab82 and 68c8997.

📒 Files selected for processing (3)
  • apps/web/src/index.css
  • apps/web/src/managedDevPc.test.ts
  • apps/web/src/managedDevPc.ts
📝 Walkthrough

Walkthrough

Managed DevPC bootstrap and resume flows now show machine, connection, and workspace wake phases. The UI includes elapsed timing, delayed-state guidance, accessible progress semantics, retry handling, and animated progress styling.

Changes

Managed wake progress

Layer / File(s)Summary
Wake phase model and presentation
apps/web/src/managedDevPc.ts, apps/web/src/managedDevPc.test.ts
Adds wake phases, phase-specific presentation data, elapsed-time formatting, delayed-state detection, and lifecycle mapping tests.
Staged wake status screen
apps/web/src/managedDevPc.ts, apps/web/src/index.css
Replaces the bootstrap card with accessible staged progress content, timing, retry handling, delayed guidance, and animated progress styling.
Bootstrap and resume lifecycle wiring
apps/web/src/managedDevPc.ts
Updates bootstrap and resume polling messages with wake phases and resets timing and announcement state when required.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
participant BootstrapPolling
participant WakePresentation
participant WorkspaceStatusScreen
BootstrapPolling->>WakePresentation: pass lifecycle snapshot and elapsed time
WakePresentation-->>WorkspaceStatusScreen: return phase-specific status data
WorkspaceStatusScreen->>WorkspaceStatusScreen: update progress, timing, and delayed guidance
Loading

Possibly related PRs

  • logancsack/t3code#7: Relocates managed DevPC status controls while this PR changes wake-progress presentation.
  • logancsack/t3code#29: Also changes managed workspace bootstrap status messaging in managedDevPc.ts.
  • logancsack/t3code#33: Extends managed DevPC bootstrap lifecycle handling and wake/resume states.

Suggested labels:size:M

Poem

A rabbit watched the wake stages flow,
Machine, connection, workspace glow.
Timers tick and progress sweeps,
Delayed states no longer sleep.
“Retry,” said Bun, “then onward we go!”

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check nameStatusExplanation
Title check✅ PassedThe title clearly and concisely describes the main change to managed workspace wake progress.
Description check✅ PassedThe description clearly explains the problem, solution, impact, and verification for the managed workspace wake UI changes.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/clear-workspace-wake-progress

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

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:d17ab82000

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment threadapps/web/src/managedDevPc.ts Outdated
Comment threadapps/web/src/managedDevPc.ts Outdated

@coderabbitaicoderabbitaiBot 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.

Actionable comments posted: 2

🤖 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.
Inline comments:
In `@apps/web/src/managedDevPc.ts`:
- Around line 358-361: Update the wake-state announcement logic around
announcePhase to track the delayed-state transition in addition to phase
changes, setting aria-live to "polite" when either changes. Ensure the
nonfailure waiting state sets surface.ariaBusy to "false" so delayed guidance is
announced without remaining deferred; preserve assertive announcements for
failures and update the stored announcement state after each transition.
- Around line 128-132: Update managedWakePhase to return "workspace" for a
confirmed running workspace before evaluating the connected or reconnecting
connection phase, while preserving the existing machine fallback. Add an
assertion in managedDevPc.test.ts covering a bootstrap snapshot representing a
running workspace.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 85f5cdc9-b188-4766-a5ce-cf66e0ab4780

📥 Commits

Reviewing files that changed from the base of the PR and between 7041967 and d17ab82.

📒 Files selected for processing (3)
  • apps/web/src/index.css
  • apps/web/src/managedDevPc.test.ts
  • apps/web/src/managedDevPc.ts

Comment threadapps/web/src/managedDevPc.ts
Comment threadapps/web/src/managedDevPc.ts Outdated

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:7e4a42b419

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment threadapps/web/src/managedDevPc.ts
Comment threadapps/web/src/managedDevPc.ts
@logancsack
logancsackforce-pushed the fix/clear-workspace-wake-progress branch from 7e4a42b to 68c8997CompareAugust 3, 2026 07:23

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:68c8997ccb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

const card = document.createElement("section");
card.className =
"w-full max-w-sm rounded-xl border border-border bg-card p-6 text-center shadow-sm";
"managed-wake-surface flex h-dvh min-h-0 justify-center overflow-x-hidden overflow-y-auto bg-background px-6 py-12 text-foreground";

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve scroll position across wake polls

On a short viewport where this new surface needs overflow-y-auto, prepareManagedDevPc calls updateBootstrapMessage after each 1.5-second poll, and that function replaces the entire surface via root.replaceChildren(). Each replacement creates a new scroll container at scrollTop = 0, so a user who scrolls to the timing or delayed guidance is repeatedly jumped back before they can read it. The current version's added scrolling is fresh evidence beyond the earlier clipping report, but it needs a stable container or explicit scroll-position preservation across polls.

Useful? React with 👍 / 👎.

@logancsack
logancsack merged commit ff550b1 into mainAug 3, 2026
12 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:Lvouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@logancsack
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Clarify managed workspace wake progress - #48

Merged
logancsack merged 2 commits into
mainfrom
fix/clear-workspace-wake-progress
Aug 3, 2026
Merged

Clarify managed workspace wake progress#48
logancsack merged 2 commits into
mainfrom
fix/clear-workspace-wake-progress

Conversation

@logancsack

@logancsacklogancsack commented Aug 3, 2026

Copy link
Copy Markdown
Owner

Problem

A cold managed-workspace wake can take about a minute, but the pre-app shell repeated one static message. Customers could not distinguish healthy wake progress from a hung page.

Solution

  • replace the static startup card with a lifecycle-driven three-stage wake surface
  • set an honest about-one-minute expectation and show real elapsed time after 10 seconds
  • surface a clear delayed state after 75 seconds while automatic retries continue
  • add restrained progress motion with reduced-motion support and phase-aware announcements
  • keep the failure retry path and automatic transition into the app

Verification

  • pnpm exec vp test run apps/web/src/managedDevPc.test.ts — 27 passed
  • pnpm --filter @t3tools/web typecheck — passed
  • pnpm exec vp lint apps/web/src/managedDevPc.ts apps/web/src/managedDevPc.test.ts — passed
  • pnpm exec vp fmt --check apps/web/src/managedDevPc.ts apps/web/src/managedDevPc.test.ts apps/web/src/index.css — passed
  • isolated full-stack pairing and app load — passed, zero console errors
  • mocked managed bootstrap QA at 1440x900 and 390x844, light and dark themes — passed, zero console errors
  • screenshots retained locally as output/playwright/wake-machine-desktop.png, wake-machine-mobile.png, wake-connection-desktop.png, wake-delayed-mobile.png, and wake-connection-mobile-dark.png

Impact

No schema, infrastructure, or security-boundary changes. This changes only the managed client's pre-React wake presentation. Aldo staging will consume it through a separately pinned immutable release after merge.

Summary by CodeRabbit

  • New Features

    • Added a staged progress experience when waking managed development environments.
    • Displays phase-specific titles, descriptions, elapsed timing, and delayed-state messaging.
    • Improved accessibility with clear progress semantics and phase-aware announcements.
    • Added animated visual progress and retry support.
  • Bug Fixes

    • Wake progress now resets correctly after resume interaction and advances through machine, connection, and workspace stages.

@cursor

cursorBot commented Aug 3, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@github-actionsgithub-actionsBot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Aug 3, 2026
@coderabbitai

coderabbitaiBot commented Aug 3, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@logancsack, you've reached your PR review limit, so we couldn't start this review.

Next review available in:49 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: f2099962-cb73-46ea-b7e5-db390e44dfd7

📥 Commits

Reviewing files that changed from the base of the PR and between d17ab82 and 68c8997.

📒 Files selected for processing (3)
  • apps/web/src/index.css
  • apps/web/src/managedDevPc.test.ts
  • apps/web/src/managedDevPc.ts
📝 Walkthrough

Walkthrough

Managed DevPC bootstrap and resume flows now show machine, connection, and workspace wake phases. The UI includes elapsed timing, delayed-state guidance, accessible progress semantics, retry handling, and animated progress styling.

Changes

Managed wake progress

Layer / File(s)Summary
Wake phase model and presentation
apps/web/src/managedDevPc.ts, apps/web/src/managedDevPc.test.ts
Adds wake phases, phase-specific presentation data, elapsed-time formatting, delayed-state detection, and lifecycle mapping tests.
Staged wake status screen
apps/web/src/managedDevPc.ts, apps/web/src/index.css
Replaces the bootstrap card with accessible staged progress content, timing, retry handling, delayed guidance, and animated progress styling.
Bootstrap and resume lifecycle wiring
apps/web/src/managedDevPc.ts
Updates bootstrap and resume polling messages with wake phases and resets timing and announcement state when required.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
participant BootstrapPolling
participant WakePresentation
participant WorkspaceStatusScreen
BootstrapPolling->>WakePresentation: pass lifecycle snapshot and elapsed time
WakePresentation-->>WorkspaceStatusScreen: return phase-specific status data
WorkspaceStatusScreen->>WorkspaceStatusScreen: update progress, timing, and delayed guidance
Loading

Possibly related PRs

  • logancsack/t3code#7: Relocates managed DevPC status controls while this PR changes wake-progress presentation.
  • logancsack/t3code#29: Also changes managed workspace bootstrap status messaging in managedDevPc.ts.
  • logancsack/t3code#33: Extends managed DevPC bootstrap lifecycle handling and wake/resume states.

Suggested labels:size:M

Poem

A rabbit watched the wake stages flow,
Machine, connection, workspace glow.
Timers tick and progress sweeps,
Delayed states no longer sleep.
“Retry,” said Bun, “then onward we go!”

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check nameStatusExplanation
Title check✅ PassedThe title clearly and concisely describes the main change to managed workspace wake progress.
Description check✅ PassedThe description clearly explains the problem, solution, impact, and verification for the managed workspace wake UI changes.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/clear-workspace-wake-progress

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

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:d17ab82000

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment threadapps/web/src/managedDevPc.ts Outdated
Comment threadapps/web/src/managedDevPc.ts Outdated

@coderabbitaicoderabbitaiBot 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.

Actionable comments posted: 2

🤖 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.
Inline comments:
In `@apps/web/src/managedDevPc.ts`:
- Around line 358-361: Update the wake-state announcement logic around
announcePhase to track the delayed-state transition in addition to phase
changes, setting aria-live to "polite" when either changes. Ensure the
nonfailure waiting state sets surface.ariaBusy to "false" so delayed guidance is
announced without remaining deferred; preserve assertive announcements for
failures and update the stored announcement state after each transition.
- Around line 128-132: Update managedWakePhase to return "workspace" for a
confirmed running workspace before evaluating the connected or reconnecting
connection phase, while preserving the existing machine fallback. Add an
assertion in managedDevPc.test.ts covering a bootstrap snapshot representing a
running workspace.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 85f5cdc9-b188-4766-a5ce-cf66e0ab4780

📥 Commits

Reviewing files that changed from the base of the PR and between 7041967 and d17ab82.

📒 Files selected for processing (3)
  • apps/web/src/index.css
  • apps/web/src/managedDevPc.test.ts
  • apps/web/src/managedDevPc.ts

Comment threadapps/web/src/managedDevPc.ts
Comment threadapps/web/src/managedDevPc.ts Outdated

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:7e4a42b419

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment threadapps/web/src/managedDevPc.ts
Comment threadapps/web/src/managedDevPc.ts
@logancsack
logancsackforce-pushed the fix/clear-workspace-wake-progress branch from 7e4a42b to 68c8997CompareAugust 3, 2026 07:23

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:68c8997ccb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

const card = document.createElement("section");
card.className =
"w-full max-w-sm rounded-xl border border-border bg-card p-6 text-center shadow-sm";
"managed-wake-surface flex h-dvh min-h-0 justify-center overflow-x-hidden overflow-y-auto bg-background px-6 py-12 text-foreground";

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve scroll position across wake polls

On a short viewport where this new surface needs overflow-y-auto, prepareManagedDevPc calls updateBootstrapMessage after each 1.5-second poll, and that function replaces the entire surface via root.replaceChildren(). Each replacement creates a new scroll container at scrollTop = 0, so a user who scrolls to the timing or delayed guidance is repeatedly jumped back before they can read it. The current version's added scrolling is fresh evidence beyond the earlier clipping report, but it needs a stable container or explicit scroll-position preservation across polls.

Useful? React with 👍 / 👎.

@logancsack
logancsack merged commit ff550b1 into mainAug 3, 2026
12 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:Lvouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@logancsack
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Clarify managed workspace wake progress - #48

Merged
logancsack merged 2 commits into
mainfrom
fix/clear-workspace-wake-progress
Aug 3, 2026
Merged

Clarify managed workspace wake progress#48
logancsack merged 2 commits into
mainfrom
fix/clear-workspace-wake-progress

Conversation

@logancsack

@logancsacklogancsack commented Aug 3, 2026

Copy link
Copy Markdown
Owner

Problem

A cold managed-workspace wake can take about a minute, but the pre-app shell repeated one static message. Customers could not distinguish healthy wake progress from a hung page.

Solution

  • replace the static startup card with a lifecycle-driven three-stage wake surface
  • set an honest about-one-minute expectation and show real elapsed time after 10 seconds
  • surface a clear delayed state after 75 seconds while automatic retries continue
  • add restrained progress motion with reduced-motion support and phase-aware announcements
  • keep the failure retry path and automatic transition into the app

Verification

  • pnpm exec vp test run apps/web/src/managedDevPc.test.ts — 27 passed
  • pnpm --filter @t3tools/web typecheck — passed
  • pnpm exec vp lint apps/web/src/managedDevPc.ts apps/web/src/managedDevPc.test.ts — passed
  • pnpm exec vp fmt --check apps/web/src/managedDevPc.ts apps/web/src/managedDevPc.test.ts apps/web/src/index.css — passed
  • isolated full-stack pairing and app load — passed, zero console errors
  • mocked managed bootstrap QA at 1440x900 and 390x844, light and dark themes — passed, zero console errors
  • screenshots retained locally as output/playwright/wake-machine-desktop.png, wake-machine-mobile.png, wake-connection-desktop.png, wake-delayed-mobile.png, and wake-connection-mobile-dark.png

Impact

No schema, infrastructure, or security-boundary changes. This changes only the managed client's pre-React wake presentation. Aldo staging will consume it through a separately pinned immutable release after merge.

Summary by CodeRabbit

  • New Features

    • Added a staged progress experience when waking managed development environments.
    • Displays phase-specific titles, descriptions, elapsed timing, and delayed-state messaging.
    • Improved accessibility with clear progress semantics and phase-aware announcements.
    • Added animated visual progress and retry support.
  • Bug Fixes

    • Wake progress now resets correctly after resume interaction and advances through machine, connection, and workspace stages.

@cursor

cursorBot commented Aug 3, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@github-actionsgithub-actionsBot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Aug 3, 2026
@coderabbitai

coderabbitaiBot commented Aug 3, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@logancsack, you've reached your PR review limit, so we couldn't start this review.

Next review available in:49 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: f2099962-cb73-46ea-b7e5-db390e44dfd7

📥 Commits

Reviewing files that changed from the base of the PR and between d17ab82 and 68c8997.

📒 Files selected for processing (3)
  • apps/web/src/index.css
  • apps/web/src/managedDevPc.test.ts
  • apps/web/src/managedDevPc.ts
📝 Walkthrough

Walkthrough

Managed DevPC bootstrap and resume flows now show machine, connection, and workspace wake phases. The UI includes elapsed timing, delayed-state guidance, accessible progress semantics, retry handling, and animated progress styling.

Changes

Managed wake progress

Layer / File(s)Summary
Wake phase model and presentation
apps/web/src/managedDevPc.ts, apps/web/src/managedDevPc.test.ts
Adds wake phases, phase-specific presentation data, elapsed-time formatting, delayed-state detection, and lifecycle mapping tests.
Staged wake status screen
apps/web/src/managedDevPc.ts, apps/web/src/index.css
Replaces the bootstrap card with accessible staged progress content, timing, retry handling, delayed guidance, and animated progress styling.
Bootstrap and resume lifecycle wiring
apps/web/src/managedDevPc.ts
Updates bootstrap and resume polling messages with wake phases and resets timing and announcement state when required.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
participant BootstrapPolling
participant WakePresentation
participant WorkspaceStatusScreen
BootstrapPolling->>WakePresentation: pass lifecycle snapshot and elapsed time
WakePresentation-->>WorkspaceStatusScreen: return phase-specific status data
WorkspaceStatusScreen->>WorkspaceStatusScreen: update progress, timing, and delayed guidance
Loading

Possibly related PRs

  • logancsack/t3code#7: Relocates managed DevPC status controls while this PR changes wake-progress presentation.
  • logancsack/t3code#29: Also changes managed workspace bootstrap status messaging in managedDevPc.ts.
  • logancsack/t3code#33: Extends managed DevPC bootstrap lifecycle handling and wake/resume states.

Suggested labels:size:M

Poem

A rabbit watched the wake stages flow,
Machine, connection, workspace glow.
Timers tick and progress sweeps,
Delayed states no longer sleep.
“Retry,” said Bun, “then onward we go!”

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check nameStatusExplanation
Title check✅ PassedThe title clearly and concisely describes the main change to managed workspace wake progress.
Description check✅ PassedThe description clearly explains the problem, solution, impact, and verification for the managed workspace wake UI changes.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/clear-workspace-wake-progress

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

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:d17ab82000

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment threadapps/web/src/managedDevPc.ts Outdated
Comment threadapps/web/src/managedDevPc.ts Outdated

@coderabbitaicoderabbitaiBot 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.

Actionable comments posted: 2

🤖 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.
Inline comments:
In `@apps/web/src/managedDevPc.ts`:
- Around line 358-361: Update the wake-state announcement logic around
announcePhase to track the delayed-state transition in addition to phase
changes, setting aria-live to "polite" when either changes. Ensure the
nonfailure waiting state sets surface.ariaBusy to "false" so delayed guidance is
announced without remaining deferred; preserve assertive announcements for
failures and update the stored announcement state after each transition.
- Around line 128-132: Update managedWakePhase to return "workspace" for a
confirmed running workspace before evaluating the connected or reconnecting
connection phase, while preserving the existing machine fallback. Add an
assertion in managedDevPc.test.ts covering a bootstrap snapshot representing a
running workspace.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 85f5cdc9-b188-4766-a5ce-cf66e0ab4780

📥 Commits

Reviewing files that changed from the base of the PR and between 7041967 and d17ab82.

📒 Files selected for processing (3)
  • apps/web/src/index.css
  • apps/web/src/managedDevPc.test.ts
  • apps/web/src/managedDevPc.ts

Comment threadapps/web/src/managedDevPc.ts
Comment threadapps/web/src/managedDevPc.ts Outdated

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:7e4a42b419

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment threadapps/web/src/managedDevPc.ts
Comment threadapps/web/src/managedDevPc.ts
@logancsack
logancsackforce-pushed the fix/clear-workspace-wake-progress branch from 7e4a42b to 68c8997CompareAugust 3, 2026 07:23

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:68c8997ccb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

const card = document.createElement("section");
card.className =
"w-full max-w-sm rounded-xl border border-border bg-card p-6 text-center shadow-sm";
"managed-wake-surface flex h-dvh min-h-0 justify-center overflow-x-hidden overflow-y-auto bg-background px-6 py-12 text-foreground";

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve scroll position across wake polls

On a short viewport where this new surface needs overflow-y-auto, prepareManagedDevPc calls updateBootstrapMessage after each 1.5-second poll, and that function replaces the entire surface via root.replaceChildren(). Each replacement creates a new scroll container at scrollTop = 0, so a user who scrolls to the timing or delayed guidance is repeatedly jumped back before they can read it. The current version's added scrolling is fresh evidence beyond the earlier clipping report, but it needs a stable container or explicit scroll-position preservation across polls.

Useful? React with 👍 / 👎.

@logancsack
logancsack merged commit ff550b1 into mainAug 3, 2026
12 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:Lvouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@logancsack
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Clarify managed workspace wake progress - #48

Merged
logancsack merged 2 commits into
mainfrom
fix/clear-workspace-wake-progress
Aug 3, 2026
Merged

Clarify managed workspace wake progress#48
logancsack merged 2 commits into
mainfrom
fix/clear-workspace-wake-progress

Conversation

@logancsack

@logancsacklogancsack commented Aug 3, 2026

Copy link
Copy Markdown
Owner

Problem

A cold managed-workspace wake can take about a minute, but the pre-app shell repeated one static message. Customers could not distinguish healthy wake progress from a hung page.

Solution

  • replace the static startup card with a lifecycle-driven three-stage wake surface
  • set an honest about-one-minute expectation and show real elapsed time after 10 seconds
  • surface a clear delayed state after 75 seconds while automatic retries continue
  • add restrained progress motion with reduced-motion support and phase-aware announcements
  • keep the failure retry path and automatic transition into the app

Verification

  • pnpm exec vp test run apps/web/src/managedDevPc.test.ts — 27 passed
  • pnpm --filter @t3tools/web typecheck — passed
  • pnpm exec vp lint apps/web/src/managedDevPc.ts apps/web/src/managedDevPc.test.ts — passed
  • pnpm exec vp fmt --check apps/web/src/managedDevPc.ts apps/web/src/managedDevPc.test.ts apps/web/src/index.css — passed
  • isolated full-stack pairing and app load — passed, zero console errors
  • mocked managed bootstrap QA at 1440x900 and 390x844, light and dark themes — passed, zero console errors
  • screenshots retained locally as output/playwright/wake-machine-desktop.png, wake-machine-mobile.png, wake-connection-desktop.png, wake-delayed-mobile.png, and wake-connection-mobile-dark.png

Impact

No schema, infrastructure, or security-boundary changes. This changes only the managed client's pre-React wake presentation. Aldo staging will consume it through a separately pinned immutable release after merge.

Summary by CodeRabbit

  • New Features

    • Added a staged progress experience when waking managed development environments.
    • Displays phase-specific titles, descriptions, elapsed timing, and delayed-state messaging.
    • Improved accessibility with clear progress semantics and phase-aware announcements.
    • Added animated visual progress and retry support.
  • Bug Fixes

    • Wake progress now resets correctly after resume interaction and advances through machine, connection, and workspace stages.

@cursor

cursorBot commented Aug 3, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@github-actionsgithub-actionsBot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Aug 3, 2026
@coderabbitai

coderabbitaiBot commented Aug 3, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@logancsack, you've reached your PR review limit, so we couldn't start this review.

Next review available in:49 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: f2099962-cb73-46ea-b7e5-db390e44dfd7

📥 Commits

Reviewing files that changed from the base of the PR and between d17ab82 and 68c8997.

📒 Files selected for processing (3)
  • apps/web/src/index.css
  • apps/web/src/managedDevPc.test.ts
  • apps/web/src/managedDevPc.ts
📝 Walkthrough

Walkthrough

Managed DevPC bootstrap and resume flows now show machine, connection, and workspace wake phases. The UI includes elapsed timing, delayed-state guidance, accessible progress semantics, retry handling, and animated progress styling.

Changes

Managed wake progress

Layer / File(s)Summary
Wake phase model and presentation
apps/web/src/managedDevPc.ts, apps/web/src/managedDevPc.test.ts
Adds wake phases, phase-specific presentation data, elapsed-time formatting, delayed-state detection, and lifecycle mapping tests.
Staged wake status screen
apps/web/src/managedDevPc.ts, apps/web/src/index.css
Replaces the bootstrap card with accessible staged progress content, timing, retry handling, delayed guidance, and animated progress styling.
Bootstrap and resume lifecycle wiring
apps/web/src/managedDevPc.ts
Updates bootstrap and resume polling messages with wake phases and resets timing and announcement state when required.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
participant BootstrapPolling
participant WakePresentation
participant WorkspaceStatusScreen
BootstrapPolling->>WakePresentation: pass lifecycle snapshot and elapsed time
WakePresentation-->>WorkspaceStatusScreen: return phase-specific status data
WorkspaceStatusScreen->>WorkspaceStatusScreen: update progress, timing, and delayed guidance
Loading

Possibly related PRs

  • logancsack/t3code#7: Relocates managed DevPC status controls while this PR changes wake-progress presentation.
  • logancsack/t3code#29: Also changes managed workspace bootstrap status messaging in managedDevPc.ts.
  • logancsack/t3code#33: Extends managed DevPC bootstrap lifecycle handling and wake/resume states.

Suggested labels:size:M

Poem

A rabbit watched the wake stages flow,
Machine, connection, workspace glow.
Timers tick and progress sweeps,
Delayed states no longer sleep.
“Retry,” said Bun, “then onward we go!”

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check nameStatusExplanation
Title check✅ PassedThe title clearly and concisely describes the main change to managed workspace wake progress.
Description check✅ PassedThe description clearly explains the problem, solution, impact, and verification for the managed workspace wake UI changes.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/clear-workspace-wake-progress

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

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:d17ab82000

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment threadapps/web/src/managedDevPc.ts Outdated
Comment threadapps/web/src/managedDevPc.ts Outdated

@coderabbitaicoderabbitaiBot 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.

Actionable comments posted: 2

🤖 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.
Inline comments:
In `@apps/web/src/managedDevPc.ts`:
- Around line 358-361: Update the wake-state announcement logic around
announcePhase to track the delayed-state transition in addition to phase
changes, setting aria-live to "polite" when either changes. Ensure the
nonfailure waiting state sets surface.ariaBusy to "false" so delayed guidance is
announced without remaining deferred; preserve assertive announcements for
failures and update the stored announcement state after each transition.
- Around line 128-132: Update managedWakePhase to return "workspace" for a
confirmed running workspace before evaluating the connected or reconnecting
connection phase, while preserving the existing machine fallback. Add an
assertion in managedDevPc.test.ts covering a bootstrap snapshot representing a
running workspace.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 85f5cdc9-b188-4766-a5ce-cf66e0ab4780

📥 Commits

Reviewing files that changed from the base of the PR and between 7041967 and d17ab82.

📒 Files selected for processing (3)
  • apps/web/src/index.css
  • apps/web/src/managedDevPc.test.ts
  • apps/web/src/managedDevPc.ts

Comment threadapps/web/src/managedDevPc.ts
Comment threadapps/web/src/managedDevPc.ts Outdated

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:7e4a42b419

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment threadapps/web/src/managedDevPc.ts
Comment threadapps/web/src/managedDevPc.ts
@logancsack
logancsackforce-pushed the fix/clear-workspace-wake-progress branch from 7e4a42b to 68c8997CompareAugust 3, 2026 07:23

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:68c8997ccb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

const card = document.createElement("section");
card.className =
"w-full max-w-sm rounded-xl border border-border bg-card p-6 text-center shadow-sm";
"managed-wake-surface flex h-dvh min-h-0 justify-center overflow-x-hidden overflow-y-auto bg-background px-6 py-12 text-foreground";

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve scroll position across wake polls

On a short viewport where this new surface needs overflow-y-auto, prepareManagedDevPc calls updateBootstrapMessage after each 1.5-second poll, and that function replaces the entire surface via root.replaceChildren(). Each replacement creates a new scroll container at scrollTop = 0, so a user who scrolls to the timing or delayed guidance is repeatedly jumped back before they can read it. The current version's added scrolling is fresh evidence beyond the earlier clipping report, but it needs a stable container or explicit scroll-position preservation across polls.

Useful? React with 👍 / 👎.

@logancsack
logancsack merged commit ff550b1 into mainAug 3, 2026
12 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:Lvouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@logancsack
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Clarify managed workspace wake progress - #48

Merged
logancsack merged 2 commits into
mainfrom
fix/clear-workspace-wake-progress
Aug 3, 2026
Merged

Clarify managed workspace wake progress#48
logancsack merged 2 commits into
mainfrom
fix/clear-workspace-wake-progress

Conversation

@logancsack

@logancsacklogancsack commented Aug 3, 2026

Copy link
Copy Markdown
Owner

Problem

A cold managed-workspace wake can take about a minute, but the pre-app shell repeated one static message. Customers could not distinguish healthy wake progress from a hung page.

Solution

  • replace the static startup card with a lifecycle-driven three-stage wake surface
  • set an honest about-one-minute expectation and show real elapsed time after 10 seconds
  • surface a clear delayed state after 75 seconds while automatic retries continue
  • add restrained progress motion with reduced-motion support and phase-aware announcements
  • keep the failure retry path and automatic transition into the app

Verification

  • pnpm exec vp test run apps/web/src/managedDevPc.test.ts — 27 passed
  • pnpm --filter @t3tools/web typecheck — passed
  • pnpm exec vp lint apps/web/src/managedDevPc.ts apps/web/src/managedDevPc.test.ts — passed
  • pnpm exec vp fmt --check apps/web/src/managedDevPc.ts apps/web/src/managedDevPc.test.ts apps/web/src/index.css — passed
  • isolated full-stack pairing and app load — passed, zero console errors
  • mocked managed bootstrap QA at 1440x900 and 390x844, light and dark themes — passed, zero console errors
  • screenshots retained locally as output/playwright/wake-machine-desktop.png, wake-machine-mobile.png, wake-connection-desktop.png, wake-delayed-mobile.png, and wake-connection-mobile-dark.png

Impact

No schema, infrastructure, or security-boundary changes. This changes only the managed client's pre-React wake presentation. Aldo staging will consume it through a separately pinned immutable release after merge.

Summary by CodeRabbit

  • New Features

    • Added a staged progress experience when waking managed development environments.
    • Displays phase-specific titles, descriptions, elapsed timing, and delayed-state messaging.
    • Improved accessibility with clear progress semantics and phase-aware announcements.
    • Added animated visual progress and retry support.
  • Bug Fixes

    • Wake progress now resets correctly after resume interaction and advances through machine, connection, and workspace stages.

@cursor

cursorBot commented Aug 3, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@github-actionsgithub-actionsBot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Aug 3, 2026
@coderabbitai

coderabbitaiBot commented Aug 3, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@logancsack, you've reached your PR review limit, so we couldn't start this review.

Next review available in:49 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: f2099962-cb73-46ea-b7e5-db390e44dfd7

📥 Commits

Reviewing files that changed from the base of the PR and between d17ab82 and 68c8997.

📒 Files selected for processing (3)
  • apps/web/src/index.css
  • apps/web/src/managedDevPc.test.ts
  • apps/web/src/managedDevPc.ts
📝 Walkthrough

Walkthrough

Managed DevPC bootstrap and resume flows now show machine, connection, and workspace wake phases. The UI includes elapsed timing, delayed-state guidance, accessible progress semantics, retry handling, and animated progress styling.

Changes

Managed wake progress

Layer / File(s)Summary
Wake phase model and presentation
apps/web/src/managedDevPc.ts, apps/web/src/managedDevPc.test.ts
Adds wake phases, phase-specific presentation data, elapsed-time formatting, delayed-state detection, and lifecycle mapping tests.
Staged wake status screen
apps/web/src/managedDevPc.ts, apps/web/src/index.css
Replaces the bootstrap card with accessible staged progress content, timing, retry handling, delayed guidance, and animated progress styling.
Bootstrap and resume lifecycle wiring
apps/web/src/managedDevPc.ts
Updates bootstrap and resume polling messages with wake phases and resets timing and announcement state when required.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
participant BootstrapPolling
participant WakePresentation
participant WorkspaceStatusScreen
BootstrapPolling->>WakePresentation: pass lifecycle snapshot and elapsed time
WakePresentation-->>WorkspaceStatusScreen: return phase-specific status data
WorkspaceStatusScreen->>WorkspaceStatusScreen: update progress, timing, and delayed guidance
Loading

Possibly related PRs

  • logancsack/t3code#7: Relocates managed DevPC status controls while this PR changes wake-progress presentation.
  • logancsack/t3code#29: Also changes managed workspace bootstrap status messaging in managedDevPc.ts.
  • logancsack/t3code#33: Extends managed DevPC bootstrap lifecycle handling and wake/resume states.

Suggested labels:size:M

Poem

A rabbit watched the wake stages flow,
Machine, connection, workspace glow.
Timers tick and progress sweeps,
Delayed states no longer sleep.
“Retry,” said Bun, “then onward we go!”

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check nameStatusExplanation
Title check✅ PassedThe title clearly and concisely describes the main change to managed workspace wake progress.
Description check✅ PassedThe description clearly explains the problem, solution, impact, and verification for the managed workspace wake UI changes.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/clear-workspace-wake-progress

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

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:d17ab82000

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment threadapps/web/src/managedDevPc.ts Outdated
Comment threadapps/web/src/managedDevPc.ts Outdated

@coderabbitaicoderabbitaiBot 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.

Actionable comments posted: 2

🤖 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.
Inline comments:
In `@apps/web/src/managedDevPc.ts`:
- Around line 358-361: Update the wake-state announcement logic around
announcePhase to track the delayed-state transition in addition to phase
changes, setting aria-live to "polite" when either changes. Ensure the
nonfailure waiting state sets surface.ariaBusy to "false" so delayed guidance is
announced without remaining deferred; preserve assertive announcements for
failures and update the stored announcement state after each transition.
- Around line 128-132: Update managedWakePhase to return "workspace" for a
confirmed running workspace before evaluating the connected or reconnecting
connection phase, while preserving the existing machine fallback. Add an
assertion in managedDevPc.test.ts covering a bootstrap snapshot representing a
running workspace.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 85f5cdc9-b188-4766-a5ce-cf66e0ab4780

📥 Commits

Reviewing files that changed from the base of the PR and between 7041967 and d17ab82.

📒 Files selected for processing (3)
  • apps/web/src/index.css
  • apps/web/src/managedDevPc.test.ts
  • apps/web/src/managedDevPc.ts

Comment threadapps/web/src/managedDevPc.ts
Comment threadapps/web/src/managedDevPc.ts Outdated

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:7e4a42b419

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment threadapps/web/src/managedDevPc.ts
Comment threadapps/web/src/managedDevPc.ts
@logancsack
logancsackforce-pushed the fix/clear-workspace-wake-progress branch from 7e4a42b to 68c8997CompareAugust 3, 2026 07:23

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:68c8997ccb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

const card = document.createElement("section");
card.className =
"w-full max-w-sm rounded-xl border border-border bg-card p-6 text-center shadow-sm";
"managed-wake-surface flex h-dvh min-h-0 justify-center overflow-x-hidden overflow-y-auto bg-background px-6 py-12 text-foreground";

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve scroll position across wake polls

On a short viewport where this new surface needs overflow-y-auto, prepareManagedDevPc calls updateBootstrapMessage after each 1.5-second poll, and that function replaces the entire surface via root.replaceChildren(). Each replacement creates a new scroll container at scrollTop = 0, so a user who scrolls to the timing or delayed guidance is repeatedly jumped back before they can read it. The current version's added scrolling is fresh evidence beyond the earlier clipping report, but it needs a stable container or explicit scroll-position preservation across polls.

Useful? React with 👍 / 👎.

@logancsack
logancsack merged commit ff550b1 into mainAug 3, 2026
12 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:Lvouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@logancsack
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Clarify managed workspace wake progress - #48

Merged
logancsack merged 2 commits into
mainfrom
fix/clear-workspace-wake-progress
Aug 3, 2026
Merged

Clarify managed workspace wake progress#48
logancsack merged 2 commits into
mainfrom
fix/clear-workspace-wake-progress

Conversation

@logancsack

@logancsacklogancsack commented Aug 3, 2026

Copy link
Copy Markdown
Owner

Problem

A cold managed-workspace wake can take about a minute, but the pre-app shell repeated one static message. Customers could not distinguish healthy wake progress from a hung page.

Solution

  • replace the static startup card with a lifecycle-driven three-stage wake surface
  • set an honest about-one-minute expectation and show real elapsed time after 10 seconds
  • surface a clear delayed state after 75 seconds while automatic retries continue
  • add restrained progress motion with reduced-motion support and phase-aware announcements
  • keep the failure retry path and automatic transition into the app

Verification

  • pnpm exec vp test run apps/web/src/managedDevPc.test.ts — 27 passed
  • pnpm --filter @t3tools/web typecheck — passed
  • pnpm exec vp lint apps/web/src/managedDevPc.ts apps/web/src/managedDevPc.test.ts — passed
  • pnpm exec vp fmt --check apps/web/src/managedDevPc.ts apps/web/src/managedDevPc.test.ts apps/web/src/index.css — passed
  • isolated full-stack pairing and app load — passed, zero console errors
  • mocked managed bootstrap QA at 1440x900 and 390x844, light and dark themes — passed, zero console errors
  • screenshots retained locally as output/playwright/wake-machine-desktop.png, wake-machine-mobile.png, wake-connection-desktop.png, wake-delayed-mobile.png, and wake-connection-mobile-dark.png

Impact

No schema, infrastructure, or security-boundary changes. This changes only the managed client's pre-React wake presentation. Aldo staging will consume it through a separately pinned immutable release after merge.

Summary by CodeRabbit

  • New Features

    • Added a staged progress experience when waking managed development environments.
    • Displays phase-specific titles, descriptions, elapsed timing, and delayed-state messaging.
    • Improved accessibility with clear progress semantics and phase-aware announcements.
    • Added animated visual progress and retry support.
  • Bug Fixes

    • Wake progress now resets correctly after resume interaction and advances through machine, connection, and workspace stages.

@cursor

cursorBot commented Aug 3, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@github-actionsgithub-actionsBot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Aug 3, 2026
@coderabbitai

coderabbitaiBot commented Aug 3, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@logancsack, you've reached your PR review limit, so we couldn't start this review.

Next review available in:49 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: f2099962-cb73-46ea-b7e5-db390e44dfd7

📥 Commits

Reviewing files that changed from the base of the PR and between d17ab82 and 68c8997.

📒 Files selected for processing (3)
  • apps/web/src/index.css
  • apps/web/src/managedDevPc.test.ts
  • apps/web/src/managedDevPc.ts
📝 Walkthrough

Walkthrough

Managed DevPC bootstrap and resume flows now show machine, connection, and workspace wake phases. The UI includes elapsed timing, delayed-state guidance, accessible progress semantics, retry handling, and animated progress styling.

Changes

Managed wake progress

Layer / File(s)Summary
Wake phase model and presentation
apps/web/src/managedDevPc.ts, apps/web/src/managedDevPc.test.ts
Adds wake phases, phase-specific presentation data, elapsed-time formatting, delayed-state detection, and lifecycle mapping tests.
Staged wake status screen
apps/web/src/managedDevPc.ts, apps/web/src/index.css
Replaces the bootstrap card with accessible staged progress content, timing, retry handling, delayed guidance, and animated progress styling.
Bootstrap and resume lifecycle wiring
apps/web/src/managedDevPc.ts
Updates bootstrap and resume polling messages with wake phases and resets timing and announcement state when required.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
participant BootstrapPolling
participant WakePresentation
participant WorkspaceStatusScreen
BootstrapPolling->>WakePresentation: pass lifecycle snapshot and elapsed time
WakePresentation-->>WorkspaceStatusScreen: return phase-specific status data
WorkspaceStatusScreen->>WorkspaceStatusScreen: update progress, timing, and delayed guidance
Loading

Possibly related PRs

  • logancsack/t3code#7: Relocates managed DevPC status controls while this PR changes wake-progress presentation.
  • logancsack/t3code#29: Also changes managed workspace bootstrap status messaging in managedDevPc.ts.
  • logancsack/t3code#33: Extends managed DevPC bootstrap lifecycle handling and wake/resume states.

Suggested labels:size:M

Poem

A rabbit watched the wake stages flow,
Machine, connection, workspace glow.
Timers tick and progress sweeps,
Delayed states no longer sleep.
“Retry,” said Bun, “then onward we go!”

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check nameStatusExplanation
Title check✅ PassedThe title clearly and concisely describes the main change to managed workspace wake progress.
Description check✅ PassedThe description clearly explains the problem, solution, impact, and verification for the managed workspace wake UI changes.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/clear-workspace-wake-progress

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

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:d17ab82000

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment threadapps/web/src/managedDevPc.ts Outdated
Comment threadapps/web/src/managedDevPc.ts Outdated

@coderabbitaicoderabbitaiBot 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.

Actionable comments posted: 2

🤖 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.
Inline comments:
In `@apps/web/src/managedDevPc.ts`:
- Around line 358-361: Update the wake-state announcement logic around
announcePhase to track the delayed-state transition in addition to phase
changes, setting aria-live to "polite" when either changes. Ensure the
nonfailure waiting state sets surface.ariaBusy to "false" so delayed guidance is
announced without remaining deferred; preserve assertive announcements for
failures and update the stored announcement state after each transition.
- Around line 128-132: Update managedWakePhase to return "workspace" for a
confirmed running workspace before evaluating the connected or reconnecting
connection phase, while preserving the existing machine fallback. Add an
assertion in managedDevPc.test.ts covering a bootstrap snapshot representing a
running workspace.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 85f5cdc9-b188-4766-a5ce-cf66e0ab4780

📥 Commits

Reviewing files that changed from the base of the PR and between 7041967 and d17ab82.

📒 Files selected for processing (3)
  • apps/web/src/index.css
  • apps/web/src/managedDevPc.test.ts
  • apps/web/src/managedDevPc.ts

Comment threadapps/web/src/managedDevPc.ts
Comment threadapps/web/src/managedDevPc.ts Outdated

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:7e4a42b419

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment threadapps/web/src/managedDevPc.ts
Comment threadapps/web/src/managedDevPc.ts
@logancsack
logancsackforce-pushed the fix/clear-workspace-wake-progress branch from 7e4a42b to 68c8997CompareAugust 3, 2026 07:23

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:68c8997ccb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

const card = document.createElement("section");
card.className =
"w-full max-w-sm rounded-xl border border-border bg-card p-6 text-center shadow-sm";
"managed-wake-surface flex h-dvh min-h-0 justify-center overflow-x-hidden overflow-y-auto bg-background px-6 py-12 text-foreground";

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve scroll position across wake polls

On a short viewport where this new surface needs overflow-y-auto, prepareManagedDevPc calls updateBootstrapMessage after each 1.5-second poll, and that function replaces the entire surface via root.replaceChildren(). Each replacement creates a new scroll container at scrollTop = 0, so a user who scrolls to the timing or delayed guidance is repeatedly jumped back before they can read it. The current version's added scrolling is fresh evidence beyond the earlier clipping report, but it needs a stable container or explicit scroll-position preservation across polls.

Useful? React with 👍 / 👎.

@logancsack
logancsack merged commit ff550b1 into mainAug 3, 2026
12 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:Lvouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@logancsack
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Clarify managed workspace wake progress - #48

Merged
logancsack merged 2 commits into
mainfrom
fix/clear-workspace-wake-progress
Aug 3, 2026
Merged

Clarify managed workspace wake progress#48
logancsack merged 2 commits into
mainfrom
fix/clear-workspace-wake-progress

Conversation

@logancsack

@logancsacklogancsack commented Aug 3, 2026

Copy link
Copy Markdown
Owner

Problem

A cold managed-workspace wake can take about a minute, but the pre-app shell repeated one static message. Customers could not distinguish healthy wake progress from a hung page.

Solution

  • replace the static startup card with a lifecycle-driven three-stage wake surface
  • set an honest about-one-minute expectation and show real elapsed time after 10 seconds
  • surface a clear delayed state after 75 seconds while automatic retries continue
  • add restrained progress motion with reduced-motion support and phase-aware announcements
  • keep the failure retry path and automatic transition into the app

Verification

  • pnpm exec vp test run apps/web/src/managedDevPc.test.ts — 27 passed
  • pnpm --filter @t3tools/web typecheck — passed
  • pnpm exec vp lint apps/web/src/managedDevPc.ts apps/web/src/managedDevPc.test.ts — passed
  • pnpm exec vp fmt --check apps/web/src/managedDevPc.ts apps/web/src/managedDevPc.test.ts apps/web/src/index.css — passed
  • isolated full-stack pairing and app load — passed, zero console errors
  • mocked managed bootstrap QA at 1440x900 and 390x844, light and dark themes — passed, zero console errors
  • screenshots retained locally as output/playwright/wake-machine-desktop.png, wake-machine-mobile.png, wake-connection-desktop.png, wake-delayed-mobile.png, and wake-connection-mobile-dark.png

Impact

No schema, infrastructure, or security-boundary changes. This changes only the managed client's pre-React wake presentation. Aldo staging will consume it through a separately pinned immutable release after merge.

Summary by CodeRabbit

  • New Features

    • Added a staged progress experience when waking managed development environments.
    • Displays phase-specific titles, descriptions, elapsed timing, and delayed-state messaging.
    • Improved accessibility with clear progress semantics and phase-aware announcements.
    • Added animated visual progress and retry support.
  • Bug Fixes

    • Wake progress now resets correctly after resume interaction and advances through machine, connection, and workspace stages.

@cursor

cursorBot commented Aug 3, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@github-actionsgithub-actionsBot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Aug 3, 2026
@coderabbitai

coderabbitaiBot commented Aug 3, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@logancsack, you've reached your PR review limit, so we couldn't start this review.

Next review available in:49 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: f2099962-cb73-46ea-b7e5-db390e44dfd7

📥 Commits

Reviewing files that changed from the base of the PR and between d17ab82 and 68c8997.

📒 Files selected for processing (3)
  • apps/web/src/index.css
  • apps/web/src/managedDevPc.test.ts
  • apps/web/src/managedDevPc.ts
📝 Walkthrough

Walkthrough

Managed DevPC bootstrap and resume flows now show machine, connection, and workspace wake phases. The UI includes elapsed timing, delayed-state guidance, accessible progress semantics, retry handling, and animated progress styling.

Changes

Managed wake progress

Layer / File(s)Summary
Wake phase model and presentation
apps/web/src/managedDevPc.ts, apps/web/src/managedDevPc.test.ts
Adds wake phases, phase-specific presentation data, elapsed-time formatting, delayed-state detection, and lifecycle mapping tests.
Staged wake status screen
apps/web/src/managedDevPc.ts, apps/web/src/index.css
Replaces the bootstrap card with accessible staged progress content, timing, retry handling, delayed guidance, and animated progress styling.
Bootstrap and resume lifecycle wiring
apps/web/src/managedDevPc.ts
Updates bootstrap and resume polling messages with wake phases and resets timing and announcement state when required.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
participant BootstrapPolling
participant WakePresentation
participant WorkspaceStatusScreen
BootstrapPolling->>WakePresentation: pass lifecycle snapshot and elapsed time
WakePresentation-->>WorkspaceStatusScreen: return phase-specific status data
WorkspaceStatusScreen->>WorkspaceStatusScreen: update progress, timing, and delayed guidance
Loading

Possibly related PRs

  • logancsack/t3code#7: Relocates managed DevPC status controls while this PR changes wake-progress presentation.
  • logancsack/t3code#29: Also changes managed workspace bootstrap status messaging in managedDevPc.ts.
  • logancsack/t3code#33: Extends managed DevPC bootstrap lifecycle handling and wake/resume states.

Suggested labels:size:M

Poem

A rabbit watched the wake stages flow,
Machine, connection, workspace glow.
Timers tick and progress sweeps,
Delayed states no longer sleep.
“Retry,” said Bun, “then onward we go!”

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check nameStatusExplanation
Title check✅ PassedThe title clearly and concisely describes the main change to managed workspace wake progress.
Description check✅ PassedThe description clearly explains the problem, solution, impact, and verification for the managed workspace wake UI changes.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/clear-workspace-wake-progress

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

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:d17ab82000

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment threadapps/web/src/managedDevPc.ts Outdated
Comment threadapps/web/src/managedDevPc.ts Outdated

@coderabbitaicoderabbitaiBot 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.

Actionable comments posted: 2

🤖 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.
Inline comments:
In `@apps/web/src/managedDevPc.ts`:
- Around line 358-361: Update the wake-state announcement logic around
announcePhase to track the delayed-state transition in addition to phase
changes, setting aria-live to "polite" when either changes. Ensure the
nonfailure waiting state sets surface.ariaBusy to "false" so delayed guidance is
announced without remaining deferred; preserve assertive announcements for
failures and update the stored announcement state after each transition.
- Around line 128-132: Update managedWakePhase to return "workspace" for a
confirmed running workspace before evaluating the connected or reconnecting
connection phase, while preserving the existing machine fallback. Add an
assertion in managedDevPc.test.ts covering a bootstrap snapshot representing a
running workspace.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 85f5cdc9-b188-4766-a5ce-cf66e0ab4780

📥 Commits

Reviewing files that changed from the base of the PR and between 7041967 and d17ab82.

📒 Files selected for processing (3)
  • apps/web/src/index.css
  • apps/web/src/managedDevPc.test.ts
  • apps/web/src/managedDevPc.ts

Comment threadapps/web/src/managedDevPc.ts
Comment threadapps/web/src/managedDevPc.ts Outdated

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:7e4a42b419

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment threadapps/web/src/managedDevPc.ts
Comment threadapps/web/src/managedDevPc.ts
@logancsack
logancsackforce-pushed the fix/clear-workspace-wake-progress branch from 7e4a42b to 68c8997CompareAugust 3, 2026 07:23

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:68c8997ccb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

const card = document.createElement("section");
card.className =
"w-full max-w-sm rounded-xl border border-border bg-card p-6 text-center shadow-sm";
"managed-wake-surface flex h-dvh min-h-0 justify-center overflow-x-hidden overflow-y-auto bg-background px-6 py-12 text-foreground";

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve scroll position across wake polls

On a short viewport where this new surface needs overflow-y-auto, prepareManagedDevPc calls updateBootstrapMessage after each 1.5-second poll, and that function replaces the entire surface via root.replaceChildren(). Each replacement creates a new scroll container at scrollTop = 0, so a user who scrolls to the timing or delayed guidance is repeatedly jumped back before they can read it. The current version's added scrolling is fresh evidence beyond the earlier clipping report, but it needs a stable container or explicit scroll-position preservation across polls.

Useful? React with 👍 / 👎.

@logancsack
logancsack merged commit ff550b1 into mainAug 3, 2026
12 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:Lvouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@logancsack
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Clarify managed workspace wake progress - #48

Merged
logancsack merged 2 commits into
mainfrom
fix/clear-workspace-wake-progress
Aug 3, 2026
Merged

Clarify managed workspace wake progress#48
logancsack merged 2 commits into
mainfrom
fix/clear-workspace-wake-progress

Conversation

@logancsack

@logancsacklogancsack commented Aug 3, 2026

Copy link
Copy Markdown
Owner

Problem

A cold managed-workspace wake can take about a minute, but the pre-app shell repeated one static message. Customers could not distinguish healthy wake progress from a hung page.

Solution

  • replace the static startup card with a lifecycle-driven three-stage wake surface
  • set an honest about-one-minute expectation and show real elapsed time after 10 seconds
  • surface a clear delayed state after 75 seconds while automatic retries continue
  • add restrained progress motion with reduced-motion support and phase-aware announcements
  • keep the failure retry path and automatic transition into the app

Verification

  • pnpm exec vp test run apps/web/src/managedDevPc.test.ts — 27 passed
  • pnpm --filter @t3tools/web typecheck — passed
  • pnpm exec vp lint apps/web/src/managedDevPc.ts apps/web/src/managedDevPc.test.ts — passed
  • pnpm exec vp fmt --check apps/web/src/managedDevPc.ts apps/web/src/managedDevPc.test.ts apps/web/src/index.css — passed
  • isolated full-stack pairing and app load — passed, zero console errors
  • mocked managed bootstrap QA at 1440x900 and 390x844, light and dark themes — passed, zero console errors
  • screenshots retained locally as output/playwright/wake-machine-desktop.png, wake-machine-mobile.png, wake-connection-desktop.png, wake-delayed-mobile.png, and wake-connection-mobile-dark.png

Impact

No schema, infrastructure, or security-boundary changes. This changes only the managed client's pre-React wake presentation. Aldo staging will consume it through a separately pinned immutable release after merge.

Summary by CodeRabbit

  • New Features

    • Added a staged progress experience when waking managed development environments.
    • Displays phase-specific titles, descriptions, elapsed timing, and delayed-state messaging.
    • Improved accessibility with clear progress semantics and phase-aware announcements.
    • Added animated visual progress and retry support.
  • Bug Fixes

    • Wake progress now resets correctly after resume interaction and advances through machine, connection, and workspace stages.

@cursor

cursorBot commented Aug 3, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@github-actionsgithub-actionsBot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Aug 3, 2026
@coderabbitai

coderabbitaiBot commented Aug 3, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@logancsack, you've reached your PR review limit, so we couldn't start this review.

Next review available in:49 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: f2099962-cb73-46ea-b7e5-db390e44dfd7

📥 Commits

Reviewing files that changed from the base of the PR and between d17ab82 and 68c8997.

📒 Files selected for processing (3)
  • apps/web/src/index.css
  • apps/web/src/managedDevPc.test.ts
  • apps/web/src/managedDevPc.ts
📝 Walkthrough

Walkthrough

Managed DevPC bootstrap and resume flows now show machine, connection, and workspace wake phases. The UI includes elapsed timing, delayed-state guidance, accessible progress semantics, retry handling, and animated progress styling.

Changes

Managed wake progress

Layer / File(s)Summary
Wake phase model and presentation
apps/web/src/managedDevPc.ts, apps/web/src/managedDevPc.test.ts
Adds wake phases, phase-specific presentation data, elapsed-time formatting, delayed-state detection, and lifecycle mapping tests.
Staged wake status screen
apps/web/src/managedDevPc.ts, apps/web/src/index.css
Replaces the bootstrap card with accessible staged progress content, timing, retry handling, delayed guidance, and animated progress styling.
Bootstrap and resume lifecycle wiring
apps/web/src/managedDevPc.ts
Updates bootstrap and resume polling messages with wake phases and resets timing and announcement state when required.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
participant BootstrapPolling
participant WakePresentation
participant WorkspaceStatusScreen
BootstrapPolling->>WakePresentation: pass lifecycle snapshot and elapsed time
WakePresentation-->>WorkspaceStatusScreen: return phase-specific status data
WorkspaceStatusScreen->>WorkspaceStatusScreen: update progress, timing, and delayed guidance
Loading

Possibly related PRs

  • logancsack/t3code#7: Relocates managed DevPC status controls while this PR changes wake-progress presentation.
  • logancsack/t3code#29: Also changes managed workspace bootstrap status messaging in managedDevPc.ts.
  • logancsack/t3code#33: Extends managed DevPC bootstrap lifecycle handling and wake/resume states.

Suggested labels:size:M

Poem

A rabbit watched the wake stages flow,
Machine, connection, workspace glow.
Timers tick and progress sweeps,
Delayed states no longer sleep.
“Retry,” said Bun, “then onward we go!”

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check nameStatusExplanation
Title check✅ PassedThe title clearly and concisely describes the main change to managed workspace wake progress.
Description check✅ PassedThe description clearly explains the problem, solution, impact, and verification for the managed workspace wake UI changes.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/clear-workspace-wake-progress

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

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:d17ab82000

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment threadapps/web/src/managedDevPc.ts Outdated
Comment threadapps/web/src/managedDevPc.ts Outdated

@coderabbitaicoderabbitaiBot 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.

Actionable comments posted: 2

🤖 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.
Inline comments:
In `@apps/web/src/managedDevPc.ts`:
- Around line 358-361: Update the wake-state announcement logic around
announcePhase to track the delayed-state transition in addition to phase
changes, setting aria-live to "polite" when either changes. Ensure the
nonfailure waiting state sets surface.ariaBusy to "false" so delayed guidance is
announced without remaining deferred; preserve assertive announcements for
failures and update the stored announcement state after each transition.
- Around line 128-132: Update managedWakePhase to return "workspace" for a
confirmed running workspace before evaluating the connected or reconnecting
connection phase, while preserving the existing machine fallback. Add an
assertion in managedDevPc.test.ts covering a bootstrap snapshot representing a
running workspace.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 85f5cdc9-b188-4766-a5ce-cf66e0ab4780

📥 Commits

Reviewing files that changed from the base of the PR and between 7041967 and d17ab82.

📒 Files selected for processing (3)
  • apps/web/src/index.css
  • apps/web/src/managedDevPc.test.ts
  • apps/web/src/managedDevPc.ts

Comment threadapps/web/src/managedDevPc.ts
Comment threadapps/web/src/managedDevPc.ts Outdated

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:7e4a42b419

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment threadapps/web/src/managedDevPc.ts
Comment threadapps/web/src/managedDevPc.ts
@logancsack
logancsackforce-pushed the fix/clear-workspace-wake-progress branch from 7e4a42b to 68c8997CompareAugust 3, 2026 07:23

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:68c8997ccb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

const card = document.createElement("section");
card.className =
"w-full max-w-sm rounded-xl border border-border bg-card p-6 text-center shadow-sm";
"managed-wake-surface flex h-dvh min-h-0 justify-center overflow-x-hidden overflow-y-auto bg-background px-6 py-12 text-foreground";

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve scroll position across wake polls

On a short viewport where this new surface needs overflow-y-auto, prepareManagedDevPc calls updateBootstrapMessage after each 1.5-second poll, and that function replaces the entire surface via root.replaceChildren(). Each replacement creates a new scroll container at scrollTop = 0, so a user who scrolls to the timing or delayed guidance is repeatedly jumped back before they can read it. The current version's added scrolling is fresh evidence beyond the earlier clipping report, but it needs a stable container or explicit scroll-position preservation across polls.

Useful? React with 👍 / 👎.

@logancsack
logancsack merged commit ff550b1 into mainAug 3, 2026
12 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:Lvouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@logancsack