Skip to content

Add smart onboarding Command Center compatibility - #14

Open
P4ND4907 wants to merge 4 commits into
mainfrom
feature/smart-onboarding-command-center
Open

P4ND4907 wants to merge 4 commits into
mainfrom
feature/smart-onboarding-command-center

Conversation

@P4ND4907

@P4ND4907 P4ND4907 commented Sep 6, 2026

Copy link
Copy Markdown
Owner

Summary

Adds the Smart Onboarding compatibility layer requested for CueForge without replacing the existing Setup Command Center architecture.

What changed

  • Adds runQuickAssessment() as a safe local-only quick-start API.
  • Keeps the existing runSmartAssessment() and runFullSmartAssessment() APIs working.
  • Saves both rolling Audio DNA history and the latest quick assessment locally.
  • Normalizes detect fields so both old and new UI shapes work: completeChain / chainComplete, eqActive / apoDetected, sonar / sonarDetected.
  • Normalizes bottleneck output so UI can safely read primaryBottleneck.message, msg, type, severity, and fix.
  • Adds a src/app/routes/CommandCenter.jsx scaffold based on the requested quick-assessment dashboard, corrected for the current CueForge folder layout.
  • Expands Smart Onboarding tests to cover the new compatibility shape.

Why this approach

The live CueForge repo already has src/smartOnboarding.js, src/core/bottleneckDiagnosis.js, src/ui/SetupCommandCenter.jsx, and src/ui/ProgressRing.jsx. The pasted snippet would have broken if added verbatim because the live app exported runSmartAssessment, not runQuickAssessment, and bottleneck messages lived under msg, not message. This PR hardens the compatibility layer instead of adding duplicate or fake UI behavior.

Validation to run

npm test -- src/tests/smartOnboarding.test.js
npm run test:ui
npm run validate:manifest
npm run validate:fixtures
npm run build

Safety notes

  • No network calls added.
  • No native routing changes added.
  • No driver/APO changes added.
  • Assessment data is redacted before local storage.
  • Existing Smart Onboarding exports are preserved.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 6, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-06T06:25:00.047922Z d48dd20 PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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: d48dd204db

ℹ️ 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 thread src/smartOnboarding.js
if (data.selfTest?.passed) score += 25;
if (data.detect?.completeChain) score += 20;
if (data.match?.confidence > 0.65) score += 15;
const selfTestPassed = Boolean(data.selfTest?.passed || (data.selfTest?.micOk && data.selfTest?.audioApiOk));

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 Respect an explicit failed self-test when scoring

When an injected self-test reports passed: false while micOk and audioApiOk are true, this fallback overrides the authoritative failure and awards the full 25 self-test points. The same assessment then records a readiness blocker but exposes an inflated setup score; only infer pass status from the component flags when passed is absent.

Useful? React with 👍 / 👎.

Comment thread src/smartOnboarding.js
Comment on lines +25 to +29
const detectForDiagnosis = {
...data.detect,
selfTest: data.selfTest,
readiness,
matchRound: data.match

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 Diagnose readiness blockers instead of reporting a clear setup

When the self-test fails or no input/output devices are found, readiness contains concrete blockers, but detectBottleneck does not inspect any of the added selfTest, readiness, or matchRound fields. With no legacy conflict signal it therefore returns status: 'clear' and “No bottleneck detected,” which the new Command Center presents as its primary insight on precisely the unconfigured systems that need guidance.

Useful? React with 👍 / 👎.

Comment thread src/smartOnboarding.js

return computeSetupReadiness({
audioApi: Boolean(data.selfTest?.audioApiOk || data.selfTest?.checks?.audioApi),
micPermission: inputCount > 0 ? 'granted' : 'unknown',

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 Derive mic readiness from permission rather than device count

When enumerateDevices() exposes an audio-input entry while microphone permission is still prompt or denied, inputCount > 0 marks the permission as granted. computeSetupReadiness consequently adds the mic-permission weight and removes its blocker even though no capture access was proven; propagate an actual permission result instead of inferring authorization from device discovery.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant