Skip to content

Register theme contributions through the public extension API #377

Description

@Haz3-jolt

Outcome

Expose theme contributions through the public extension API with the existing terminal theme system as the first working consumer. Do not rebuild the shipped JSON theme loader or hot reload.

Current repository evidence

packages/tui/src/custom-themes.ts already validates bounded theme files, color roles, identifiers, and project/global catalogs. packages/extensions/api/src/index.ts has capability-scoped terminal registrations and disposers but no registerTheme surface. ROADMAP Phase 6 calls for that surface only with a real consumer.

Acceptance criteria

  • Add the minimal public registerTheme contract and declared UI capability required to contribute a validated theme to the existing TUI catalog.
  • Reuse current theme data validation, bounds, project/global rules, and protected built-in identifiers instead of inventing a second format.
  • Make a working first-party theme contribution use the same public registration path available to third parties, with no private daemon or kernel imports.
  • Return an idempotent disposer; disable, reload, rollback, and exit remove extension-owned theme entries and report selection changes or invalid replacements explicitly.
  • Keep visual preferences client-local, without model prompt content, canonical session mutations, executable theme payloads, or a mandatory cross-client theme registry.
  • Test capability denial, invalid data, naming conflicts, live contribution removal, reactivation, and reuse of existing user themes.

Verification

Extend the public terminal-extension and custom-theme fixtures, and verify an installed first-party consumer. The source was inspected during this audit; product tests were not run.

Coordination

Use existing presentation ownership. Web-specific theme support should add only its concrete data/rendering needs when that client exists. Runtime registration and cross-client panels remain separate issues.

Source

ROADMAP.md Phase 6, Remaining runtime and cross-client surface, and Resource formats.

Repository audit

Audited against Axl 88944a2. Phase 6. Source inspection, not an executed behavior test. Roadmap references: L1897, L1907.

Tracking key: axl-backlog:audit.extension-theme-registration.

Issue tracking

Axl issue mirror: #377 | GitHub #377

Related issues:

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:extensionsAxl backlog: area:extensionsclient:tuiTerminal user interfaceenhancementNew feature or requesttestsTests and verification

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions