Skip to content

fix(settings): restore machine capability catalog after editor kind drift - #5009

Merged
huangruiteng merged 2 commits into
mainfrom
codex/fix-machine-capability-catalog-0924
Sep 24, 2026
Merged

huangruiteng merged 2 commits into
mainfrom
codex/fix-machine-capability-catalog-0924

Conversation

@huangruiteng

Copy link
Copy Markdown
Collaborator

Goal and gap

Restore the machine capability settings page when the shared catalog includes the Goal-only progress-review descriptor. The API returned registered machine capabilities, but the dashboard rejected the entire catalog because progress_review.drift_threshold used an editor kind outside the browser's published vocabulary. The machine page then displayed a false empty-registry message.

Change

  • Emit the existing number editor kind for the integer-bounded drift threshold. Its minimum, maximum, and server-side integer validation remain authoritative.
  • Show a retryable load error when the machine catalog request or validation fails. Reserve the empty-registry message for a successfully loaded catalog with no machine capabilities.
  • Validate all built-in machine and Goal descriptors together so a Goal-only field cannot silently break machine settings again. Exercise error, retry, and populated catalog states in the browser smoke.
  • Record the failure mode in the self-repair patterns.

User entry points and visual evidence

  • Machine settings and Goal capability settings consume the same catalog. The machine settings page now shows its registered controls, and a failed load shows an error with Retry.
  • The packaged personal-workspace browser scenario verified the populated machine catalog, guided controls, failure state, retry, preview and apply path, and mobile layout. The only visual change is the explicit error state when loading fails.
  • No Lark or CLI configuration flow changed. The Chat HTTP readback was exercised with a disposable runtime and returned six machine capabilities with the supported numeric field kind.

Validation

  • uv run --extra test python -m pytest tests/capabilities/test_capability_configuration_ui.py tests/capabilities/test_progress_review.py -q — 23 passed.
  • npm run build — TypeScript, Dashboard, and packaged Chat bundle passed.
  • LOOPX_PERSONAL_WORKSPACE_PACKAGED=1 ... node examples/personal-workspace-browser-smoke.mjs (typed-actions) — passed on the exact branch head.
  • Personal workspace contract smoke, Ruff check, git diff --check, and LoopX public-boundary check — passed. The LoopX check reported two pre-existing active-state projection warnings unrelated to these files.

Scope and review

This changes the capability catalog contract and the shipped Dashboard. Leave merge to the maintainer after exact-head review. The adjacent editor vocabulary was checked as a bounded future-facing pass; no additional abstraction was needed.

Signed-off-by: huangruiteng <14976749+huangruiteng@users.noreply.github.com>
Signed-off-by: huangruiteng <14976749+huangruiteng@users.noreply.github.com>
@huangruiteng
huangruiteng merged commit c088d63 into main Sep 24, 2026
18 of 27 checks passed
@huangruiteng
huangruiteng deleted the codex/fix-machine-capability-catalog-0924 branch September 24, 2026 15:06
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