Skip to content

TP-F2 — Theme marketplace metadata #161

Description

@ZhuchkaTriplesix

Epic: #159
Depends on: TP-03 (manifest model), TP-10 (ThemeDefinition), shipped in 0.4.2

Source: docs/planned-0.4.3.md, docs/market-tech.md

Goal

Extend querya.theme.v1 and ThemeDefinition with optional marketplace-oriented metadata so themes can later appear in an Extensions → Explore UI without another breaking schema change.

Files

  • lib/core/theme/parser/querya_theme_manifest.dart
  • lib/core/theme/theme_definition.dart
  • lib/core/theme/theme_registry_service.dart
  • docs/theme-custom-json.md
  • test/fixtures/themes/ (samples with metadata)
  • optional stub: lib/core/market/extension_manifest.dart (align field names only; no HTTP yet)

Implementation

Add optional manifest fields (backward compatible):

  • author, homepage, license
  • tags (string array)
  • preview (relative asset path or HTTPS URL string — parse only; no remote fetch in this issue)
  • description (short markdown/plain text)

Map into ThemeDefinition for picker display (subtitle, tooltip, future card layout).

Align naming with future ExtensionManifest from market-tech (id, name, version, type: theme, sha256Checksum stays install-time concern for TP-F4).

Update JSON schema docs and one fixture theme with full metadata.

Acceptance Criteria

  • Old theme files without new fields still load unchanged.
  • Registry exposes metadata on ThemeDefinition for UI consumers.
  • Theme picker can show author or tags when present (minimal UI — badge or subtitle).
  • Docs document every new optional field and defaults.
  • No network calls in this issue.

Tests

  • Parser accepts fixtures with and without metadata.
  • Registry scan preserves metadata on ThemeDefinition.
  • Regression: existing querya.theme.v1 fixtures still parse.

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or requestmarketplaceExtensions marketplace, ExtensionManifestparserTheme parser epic label: parserregistryTheme parser epic label: registrythemeTheming, colors, VS Code themes

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions