Repository navigation
Conversation
The verified and installing stages of an engine install emitted hardcoded 50/75 percents, so the UI sat at 75% for the whole opaque install command. Treat percent 0 as indeterminate for install progress (matching pull) and omit it from engine:install-progress, so the UI shows the stage alone. Download byte progress and the terminal 100/-1 frames are unchanged. The TUI now renders (N%) only for a measured percent. Signed-off-by: Chris Kelsey <[email protected]>
The bridge projected a missing install percent through numberValue, which returns 0, so the UI showed "Installing · 0%" after the engine-manager stopped sending the fake 75. Map a missing or zero install percent to undefined on both the local and remote install paths, and assert the projected payload in tests. Also from review: tighten the install-flow test (measured download frame, no unexpected stages), document the shared percent rule for all progress notifications, route the failed install frame through the shared emitter, and have the TUI show the install failure reason with tests for its progress formatting. Signed-off-by: Chris Kelsey <[email protected]>
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
Engine installs sat at a hardcoded 75% for the whole install step, and
verifiedwas hardcoded at 50%, so the bar went 100% → 50% → 75%. The install step runs opaque commands (tar/unzipfor Ollama, LM Studio's vendor installer) with no streamed output, so real progress isn't measurable. This PR stops inventing numbers: those steps are now reported as indeterminate, and the UI shows just the stage ("Installing").nvpair-engine-manager:emitInstallProgressomitspercentfromengine:install-progresswhen it is 0 (indeterminate), matching the existing pull-progress convention (wirePercentIncluded).verifiedand bothinstallingpaths now send 0. Real download byte progress and terminal frames (done/already-installed= 100,failed= -1) are unchanged. A download withoutContent-Lengthnow shows "Downloading" instead of "0%".nvpair-tui: renders(N%)only for a measured percent (previously would show(0%), and already showed(-1%)on failure).numberValue, which returns0, so the UI would have shown "Installing · 0%". Both install projections (localapplyEngineManagerProgress, remoteapplyRemoteEngineProgress) now map a missing or zero percent toundefinedviameasuredPercent, soBackendHeaderandWelcomeEngineRowrender the stage alone. Pull keeps its existingmergePullProgressPercentbehavior.reportInstallFailednow goes through the shared install emitter, and the TUI shows the failure reason (install <engine> failed: <error>).spec.md/README.mdmarkpercentoptional onengine:install-progress,engine:pull-progress, andengine:remote-progress, and state the shared rule once.Audited components
nvpair-engine-manager(install.go,executor.go,progress.go).controlstream.go/remote.goalready omit percent 0; unchanged.engine:*verbatim; unchanged.modular-state.tsupdated (local and remote install projections);BackendHeader.tsx/WelcomeEngineRow.tsxrender the stage alone oncepercentisundefined; model-pull UI is unaffected;nvpair-tuiupdated.Testing
go test ./...inservices/nvpair-engine-managerandservices/nvpair-tuipercent; full fetch+run install emits a measured percent on download, none onverified/installing, 100 ondone, and no unexpected stagespercent: undefinedafter a 100% download (verified failing without the fix)percentSuffixandinstallStatusnpm run lint,npm run typecheck,npm run dead-code:check,npm run service-contracts:check,npm run test:unitindesktop/Changelog title
Engine install no longer shows a fake percentage
Changelog body
Bumps