Merge pro UX error bridge cleanup into main#780
Conversation
…y PRO-UX.1] 5 top-5 codes mapped to EXISTING ErrorCategory (PERMISSION/NETWORK/ EXTERNAL_EXECUTOR — no invented categories). Warm G3 PT-BR userMessage + recovery arrays. Codes mirror license-server (no AIOX_ prefix). No collision with core registry. 7 tests. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ry PRO-UX.1][Story PRO-UX.2] - error-bridge: parseEnvelopeToAIOXError, 3-tier fallback (message_pt > registry.userMessage > server message), graceful on legacy/malformed - render-error: warm output + numbered steps + support_code + conditional support link + technical footer - recovery-actions: planRecoveryAction + OS-aware cache cleanup (PowerShell vs bash — fixes the bug that made Robert run bash in PowerShell) - 15 tests (bridge fallback, render anchor case, cross-platform) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ory PRO-UX.1] ROOT CAUSE of the anchor incident (Robert's opaque "HTTP 403"): _request read parsed.message / parsed.code at the ROOT, but the structured envelope nests them under `error`. So err.code was always undefined → the typed error branches (NOT_A_BUYER, SEAT_LIMIT_EXCEEDED, ...) in runProWizard were NEVER reached → fell through to the generic "HTTP <status>" message. Fix: read errorBody from parsed.error (nested) first, attach err.httpStatus + err.envelope for downstream renderError. Restores the existing i18n error branches. Preserves legacy root-shape compat. pro-setup suite 39/39 green (no regression). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…-UX.1] IDS hook auto-registration for .aiox-core/core/errors/pro-error-registry.js. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The IDS hook's incremental update diverged from clean regen output (structural delta). Regenerated via populate-entity-registry.js. validate:registry-determinism now PASSES (821 entities). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ack [Story PRO-UX.2] Addresses 2 CodeRabbit Major findings on PR #775: - renderError: guard against null/non-object err (prints generic message) - pro-setup _request: guard parsed.message/parsed.code against parsed === null The 5 "absolute import" suggestions are NOT applied: CLI runtime modules (error-bridge, pro-error-registry) require relative paths — there is no runtime module alias for `aiox-core/*` outside Jest's moduleNameMapper. Same-dir `./` imports do not violate the no-`../../../` rule. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
# Conflicts: # .aiox-core/install-manifest.yaml
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
📊 Coverage ReportCoverage report not available
Generated by PR Automation (Story 6.1) |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
💤 Files with no reviewable changes (1)
✅ Files skipped from review due to trivial changes (1)
WalkthroughAdds allowlists and a directory-listing helper, extends validateClaudeIntegration to check ChangesClaude Integration Allowlist Enforcement and Cleanup
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested labels
Suggested reviewers
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 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 @.aiox-core/infrastructure/scripts/validate-claude-integration.js:
- Around line 7-21: The ALLOWED_NATIVE_SUBAGENTS Set currently includes non-core
entries that relax the governance baseline; update the ALLOWED_NATIVE_SUBAGENTS
constant to only contain the 10 approved core native subagents by removing
"aiox-master", "aiox-squad-creator", and "aiox-ux-design-expert" so the set
exactly matches the strict governance whitelist used by the tests (leave the
other listed entries unchanged), then run the validation/tests to confirm the
allowlist and tests align.
🪄 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: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 1743a79d-4aef-4a32-a212-569203af2a6f
📒 Files selected for processing (42)
.aiox-core/infrastructure/scripts/validate-claude-integration.js.aiox-core/install-manifest.yaml.claude/agent-memory/oalanicolas/MEMORY.md.claude/agent-memory/pedro-valerio/MEMORY.md.claude/agent-memory/sop-extractor/MEMORY.md.claude/agent-memory/squad/MEMORY.md.claude/agents/brad-frost.md.claude/agents/copy-chief.md.claude/agents/cyber-chief.md.claude/agents/dan-mall.md.claude/agents/data-chief.md.claude/agents/dave-malouf.md.claude/agents/db-sage.md.claude/agents/design-chief.md.claude/agents/design-system.md.claude/agents/legal-chief.md.claude/agents/nano-banana-generator.md.claude/agents/oalanicolas.md.claude/agents/pedro-valerio.md.claude/agents/sop-extractor.md.claude/agents/squad-chief.md.claude/agents/squad.md.claude/agents/story-chief.md.claude/agents/tools-orchestrator.md.claude/agents/traffic-masters-chief.md.claude/commands/AIOX/scripts/agent-config-loader.js.claude/commands/cohort-squad/agents/cohort-manager.md.claude/commands/design-system/agents/brad-frost.md.claude/commands/design-system/agents/dan-mall.md.claude/commands/design-system/agents/dave-malouf.md.claude/commands/design-system/agents/design-chief.md.claude/commands/design-system/agents/nano-banana-generator.md.claude/skills/clone-mind.md.claude/skills/course-generation-workflow.md.claude/skills/enhance-workflow.md.claude/skills/ralph.md.claude/skills/squad.md.codex/skills/aiox-claude-mastery-chief/SKILL.mdeslint.config.jstests/claude/subagent-governance.test.jstests/integration/codex-skills-sync.test.jstests/unit/validate-claude-integration.test.js
💤 Files with no reviewable changes (35)
- .claude/agent-memory/sop-extractor/MEMORY.md
- .claude/agent-memory/squad/MEMORY.md
- .claude/commands/design-system/agents/dan-mall.md
- .claude/agents/dan-mall.md
- .claude/agents/legal-chief.md
- .claude/agents/pedro-valerio.md
- .claude/skills/ralph.md
- .claude/agents/traffic-masters-chief.md
- .claude/commands/design-system/agents/brad-frost.md
- .claude/skills/course-generation-workflow.md
- .claude/agent-memory/oalanicolas/MEMORY.md
- .claude/agents/oalanicolas.md
- .codex/skills/aiox-claude-mastery-chief/SKILL.md
- .claude/agents/design-chief.md
- .claude/agents/design-system.md
- .claude/agents/cyber-chief.md
- .claude/commands/design-system/agents/dave-malouf.md
- .claude/agents/sop-extractor.md
- .claude/commands/cohort-squad/agents/cohort-manager.md
- .claude/agent-memory/pedro-valerio/MEMORY.md
- .claude/agents/nano-banana-generator.md
- .claude/commands/design-system/agents/design-chief.md
- .claude/agents/story-chief.md
- .claude/agents/brad-frost.md
- .claude/agents/db-sage.md
- .claude/agents/squad-chief.md
- .claude/agents/squad.md
- .claude/skills/squad.md
- .claude/agents/tools-orchestrator.md
- .claude/agents/dave-malouf.md
- .claude/skills/enhance-workflow.md
- .claude/agents/copy-chief.md
- .claude/commands/design-system/agents/nano-banana-generator.md
- .claude/skills/clone-mind.md
- .claude/agents/data-chief.md
Dismiss stale CodeRabbit change request: addressed in 0bcf2d0 and CodeRabbit approved latest head.
|
DevOps update: cleanup PR is ready from my side. CI is green across the matrix, CodeRabbit approved the latest head, and the stale CodeRabbit change request was dismissed after the requested fix landed in 0bcf2d0. Squash merge is currently blocked only by CODEOWNERS review: waiting on Pedrovaleriolopez and/or oalanicolas. |
* feat(errors): pro-error-registry extending defaultErrorRegistry [Story PRO-UX.1] 5 top-5 codes mapped to EXISTING ErrorCategory (PERMISSION/NETWORK/ EXTERNAL_EXECUTOR — no invented categories). Warm G3 PT-BR userMessage + recovery arrays. Codes mirror license-server (no AIOX_ prefix). No collision with core registry. 7 tests. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * feat(pro-cli): envelope bridge + warm render + OS-aware recovery [Story PRO-UX.1][Story PRO-UX.2] - error-bridge: parseEnvelopeToAIOXError, 3-tier fallback (message_pt > registry.userMessage > server message), graceful on legacy/malformed - render-error: warm output + numbered steps + support_code + conditional support link + technical footer - recovery-actions: planRecoveryAction + OS-aware cache cleanup (PowerShell vs bash — fixes the bug that made Robert run bash in PowerShell) - 15 tests (bridge fallback, render anchor case, cross-platform) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(installer): parse nested error envelope in pro-setup _request [Story PRO-UX.1] ROOT CAUSE of the anchor incident (Robert's opaque "HTTP 403"): _request read parsed.message / parsed.code at the ROOT, but the structured envelope nests them under `error`. So err.code was always undefined → the typed error branches (NOT_A_BUYER, SEAT_LIMIT_EXCEEDED, ...) in runProWizard were NEVER reached → fell through to the generic "HTTP <status>" message. Fix: read errorBody from parsed.error (nested) first, attach err.httpStatus + err.envelope for downstream renderError. Restores the existing i18n error branches. Preserves legacy root-shape compat. pro-setup suite 39/39 green (no regression). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * chore(ids): register pro-error-registry in entity registry [Story PRO-UX.1] IDS hook auto-registration for .aiox-core/core/errors/pro-error-registry.js. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * chore(ids): regen entity-registry deterministically [Story PRO-UX.1] The IDS hook's incremental update diverged from clean regen output (structural delta). Regenerated via populate-entity-registry.js. validate:registry-determinism now PASSES (821 entities). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(pro-cli): null/non-object guards in renderError + pro-setup fallback [Story PRO-UX.2] Addresses 2 CodeRabbit Major findings on PR SynkraAI#775: - renderError: guard against null/non-object err (prints generic message) - pro-setup _request: guard parsed.message/parsed.code against parsed === null The 5 "absolute import" suggestions are NOT applied: CLI runtime modules (error-bridge, pro-error-registry) require relative paths — there is no runtime module alias for `aiox-core/*` outside Jest's moduleNameMapper. Same-dir `./` imports do not violate the no-`../../../` rule. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix: remove leaked pro IDE artifacts * test: stabilize dashboard fallback test * fix: tighten claude native agent allowlist --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Summary\n- Merge feature/pro-ux-error-bridge into main\n- Remove leaked Pro IDE artifacts from core Claude/Codex surfaces\n- Keep Claude/Codex validation gates preventing future leaks\n- Include latest main installer npm CLI fix\n\n## Validation\n- npm run lint\n- npm run typecheck\n- npm run validate:claude-integration\n- npm run validate:claude-sync\n- npm run validate:codex-skills\n- npm run validate:codex-sync\n- npm run validate:manifest\n- npm run test:ci (8746 passed, 172 skipped)\n
Summary by CodeRabbit
Tests
Chores