WIP: feat: write mode (Read-only by default), preferences via core Preferences, auto-confirm rules (W1; DRAFT until QQQ RC.8) #21

Draft
KofTwentyTwo wants to merge 2 commits from feature/write-mode into develop
pull from: feature/write-mode
2 Commits
Author SHA1 Message Date
james.maesandClaude Opus 5.5 8dd92de98e Merge develop into feature/write-mode; preferences through core Preferences
- Resolve against develop (#19 spec'd endpoints on UiApiInvoker, P-a..P-g,
  presentation, bulk-load, X1/Y1): write-mode gating now also covers
  scheduled runs (per-task approval AND policy) and bulk-load writes.
- Drop the bespoke /assistant/preferences endpoints; the assistant's
  per-user settings are a core Preferences section "assistant"
  (/qqq/v1/preferences/assistant) with AssistantPreferencesProvider over
  assistant_user_preference, policy-validated, denied to the assistant
  channel. /assistant/config still returns the effective defaults.
- Requires QQQ RC.8 (core Preferences, QRun-IO/qqq#1162).

Closes #29.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 09:33:55 -05:00
james.maesandClaude Opus 5.5 a9ff632750 feat: write mode (Read-only by default), user preferences, auto-confirm rules
Owner (2026-10-13): the assistant can go into write mode by user choice,
and stays only a UI client of the /qqq/v1 API.

- writeMode per conversation; the write tools exist only in Write mode,
  and a write tool called in Read-only mode is refused before any request.
- Policy: writeModeAllowed, writeModePermission (role),
  autoConfirmAllowed; data access autoConfirmOk per table.
- assistant_user_preference: default mode, auto-confirm of low-risk
  writes (single-record insert/update on auto-confirm-OK tables; never
  deletes); GET/PATCH /assistant/preferences as spec'd operations.
- The denial matrix covers the write tools in both modes; WriteModeTest
  covers the tool list, policy, preferences and auto-confirm.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 16:27:08 -05:00