Repository navigation
Conversation
…wer it Under nuxi, the default terminal question could be answered by an unrelated key, or stay open forever. It now refuses at once when another reader holds stdin in raw mode (DF9007), and after 5 minutes without an answer (DF9008). The guide now tells hosts under a CLI that owns the terminal to pass onConfirm. closes #448
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
👁️🗨️ Review this pull request with grouped, summarized diffs at: raw result💭 analyzed by {
"headSha": "546745edc9057a6cfef43df4bb0242ad79992744",
"result": {
"overallSummary": "Fixes `@devframes/hub-ui-onboard`'s default terminal install-confirmation so it refuses the question instead of hanging or letting an unrelated keypress answer it, when nobody can actually respond (e.g. under `nuxi dev`'s raw-mode TUI or when no answer arrives within 5 minutes). Adds two new diagnostics (DF9007, DF9008), updates tests, and rewrites the guide/error docs to explain when a host must supply its own `onConfirm`.",
"groups": [
{
"key": "terminal-confirm-fix",
"label": "Terminal confirm refusal logic",
"summary": "Makes the default terminal `onConfirm` refuse the install question whenever nobody can actually answer it: at once when stdin is in raw mode (another program, e.g. a TUI, owns the keys), and after a 5-minute timeout when no answer arrives at all. Adds the corresponding DF9007/DF9008 diagnostics and documents the new timeout/raw-mode behavior in the public types.",
"category": "security",
"filePaths": [
"packages/hub-ui-onboard/src/terminal-confirm.ts",
"packages/hub-ui-onboard/src/diagnostics.ts",
"packages/hub-ui-onboard/src/types.ts"
],
"critical": true,
"fileNotes": [
{
"path": "packages/hub-ui-onboard/src/terminal-confirm.ts",
"text": "Core fix: checks `input.isRaw` to detect a reader (e.g. nuxi's TUI) that would otherwise swallow the question, and adds a 5-minute timer that refuses and releases the stream if nobody answers.",
"critical": true
}
]
},
{
"key": "tests",
"label": "Terminal confirm tests",
"summary": "Adds tests covering the new raw-mode refusal (DF9007) and the 5-minute no-answer timeout (DF9008, using fake timers), verifying stdin is paused again afterward.",
"category": "tests",
"filePaths": [
"packages/hub-ui-onboard/test/terminal-confirm.test.ts"
]
},
{
"key": "docs",
"label": "Docs and error pages",
"summary": "Updates the guide and error reference to explain why the default terminal question needs a line-by-line readable stdin, why CLIs like `nuxi dev` can take that away, the new DF9007/DF9008 errors, and the 5-minute limit mentioned in DF9005; also drops the claim that the `consola` example fits a Nuxt module.",
"category": "docs",
"filePaths": [
"docs/content/1.guide/23.hub-ui-onboard.md",
"docs/content/6.errors/DF9005.md",
"docs/content/6.errors/DF9006.md",
"docs/content/6.errors/DF9007.md",
"docs/content/6.errors/DF9008.md",
"docs/content/8.references/6.hub-api.md"
]
}
],
"schemaVersion": 1,
"source": "llm",
"generatedAt": "2026-10-14T07:36:50.958Z",
"model": "vercel-ai-gateway/anthropic/claude-sonnet-5",
"locale": "en"
}
} |
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The default
onConfirmof@devframes/hub-ui-onboardasksy/Nin the terminal. Undernuxi dev, the developer often cannot see or answer that question (#448). An unrelated key could answer it, or the panel waited forever on "Confirm in your terminal...".The default question now refuses whenever nobody can answer it:
w, answers it.DF9007.POSTand the shared question stay open forever.DF9008. The panel showsmessages.refused.DF9006.DF9006page now names the nuxi case.DF9005now tells the developer about the 5-minute limit. The limit covers only the default question. A host's ownonConfirmcontrols its own wait.The guide now says that the default question needs a terminal that the dev server process reads line by line. It explains why
nuxi devtakes the answer away, and tells a host under such a CLI to passonConfirm. This corrects the assumption in #445 that the nuxi fork inherits a usable stdin. Theconsolaexample no longer claims to fit a Nuxt module.closes #448
Verification
pnpm lint && pnpm knip && pnpm test && pnpm typecheck && pnpm buildpass (156 files, 1743 tests).DF9007. No answer within 5 minutes (fake timers) refuses withDF9008and pauses stdin again.script): withsetRawMode(true)and adatareader, Install gets403in 4 ms withDF9007. Without raw mode,ystill gets202.nuxi devsession.This PR was created with the help of an AI agent.