Skip to content

[OpenSpec] surfaces-assistant-approved-mark #683

Description

@github-actions

⚠️ OpenSpec-managed issue — this content is automatically synced
from the openspec/ directory. Manual edits will be overwritten on next sync.

Artifacts

Specs

Tasks

  • 1.1 lib/Service/AssistantMarkService.php with the three app config keys and their defaults. Verify: tests/Unit/Service/AssistantMarkServiceTest.php for off, on with defaults, on with an own name and logo, and refusing on with an empty name.
  • 1.2 GET /api/assistant-mark (#[NoAdminRequired]) and POST /settings/assistant-mark (#[AuthorizedAdminSetting]). Verify: controller tests, anonymous refused, non-admin write 403, label in Dutch for a Dutch user.
  • 1.3 The three keys in the configuration bundle. Verify: ConfigBundleServiceTest round trip.
  • 2.1 AI assistant block with toggle, name, logo and a preview of the mark. Verify: Playwright scenario "An administrator turns on the approved mark".
  • 3.1 Document the endpoint contract in docs/reference/assistant-mark.md. Verify: the docs build.
  • 3.2 Open an issue in ConductionNL/nextcloud-vue for rendering the mark in CnAiChatPanel when thematiq is installed and the mark is on. Verify: issue link recorded here.
  • 4.1 The logo in the preview has the alternative text " logo"; the label meets 4.5:1 against the panel footer in light and dark mode. Verify: Playwright axe run on the settings block.
  • 4.2 l10n en and nl for the label and the block. Verify: npm run test:l10n.

Design

See design.md for technical design details.


Synced from openspec/changes/surfaces-assistant-approved-mark by OpenSpec workflow
App: thematiq

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions