Files

2.3 KiB

qbit-help

QQQ in-app help authoring only. Core owns storage, targeting, search, application, and coverage enumeration. Read README.md, docs/DESIGN.md, and docs/CORE-FOLLOWUPS.md before changing behavior.

Build

Java 21, qbit-build-parent 2.0.0, qqq.version=4.1.0-RC.11; the published dependency includes the help-bundle APIs (QRun-IO/qqq#1198), so no local stand-in is required. Use ./mvnw -o verify (mvnw.cmd on Windows), then online if missing artifacts. Maven 3.10 cannot load the current parent's unflattened ${revision}; wrapper is 3.9.11.

JUnit 5 + AssertJ, real QQQ memory backend and streamed process runner. Checkstyle is copied from qbit-webhooks. JaCoCo requires 70% instruction and 90% class coverage. Do not skip gates or exclude authoring classes.

Source map

  • HelpQBitConfig: backend/app/coverage/table customization.
  • HelpQBitProducer: reuse or define core table; app, widgets, actions.
  • Permissions: standard help CRUD rules, help.hasAccess, and help.author.hasAccess; host-table opt-out in config.
  • HelpWidgets: seven full-width typed home tables and the conditional record comparison; Next links and standard default-values hash.
  • HelpProcesses: streamed Review/Result workflows and per-run preview metadata.

Invariants

  • Add no tables; use helpContent, the approved pre-standard naming exception.
  • Do not replace host backend details, record locks, or core lifecycle customizers.
  • One Help app; navigation contains only the help table. Processes are table/record actions.
  • No HTML widgets, runtime filesystem I/O, other-qbit dependencies, custom routes, or non-UI API paths.
  • Use QQQ's typed help renderer and standard import/export. No custom dry-run forms.
  • No global per-instance config cache. Widget metadata carries its own coverage flag.
  • Do not mutate shared process help for a preview. Use runtime frontend-step adjustments.
  • Do not wall help off from the assistant.
  • Preserve user-owned changes. No commits, pushes, PRs, or edits outside this repository without new authorization.

Style

3 spaces, Allman braces, return (x);, flower-box Javadoc, three blank lines between methods, sorted imports, fluent withX() accessors, reference Apache license header. Favor core primitives and short classes over new abstractions.