Supersedes the Dependabot PRs for both. TypeScript 7 stops loading all
@types packages implicitly, so the base tsconfig names node; @types/node 26
rejects an undefined assertion message, fixed in one conformance test.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
qqq ui opens on a splash (Query animated beside the qqq wordmark, version line, boot status line). With several profiles and none named, the Servers picker asks which to connect to (last used preselected, asynchronous probes, n adds, Esc quits with a hint); one profile or --profile/QQQ_PROFILE/--server connects straight away; no profiles opens the add form. Sign-in failures stay on the splash with retry, choose another, add, or quit. --no-splash, QQQ_UI_NO_SPLASH=1 or ui.splash off restores the old sign-in screen first. Behaviour change: with several profiles and a default set, the TUI now asks instead of connecting to the default.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
⇧F1 Keys, ⇧F2 Servers, ⇧F3 SQL, ⇧F4 Bulk, ⇧F5 Metadata, ⇧F6 Views, ⇧F7 Copy, ⇧F8 Export, ⇧F9 History, ⇧F10 Assistant; keys that do not apply are dimmed and explain why. Two bar rows from 30 lines (:fkeys one|two|auto), or the Shift row swapped in for 2 s after a Shift+F press; clicks on the Shift row work. Key decoding covers xterm modifier forms, kitty codes and legacy VT220/rxvt numbering; a guarded stdin rewrite delivers Shift+F3, which OpenTUI 0.8.1 otherwise drops as a cursor-position reply.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Save as PDF… is the first printer-picker entry and saves through the download flow (file dialog or silent download folder, stamped names, overwrite confirmation); :print pdf; qqq print … --to-file [path]. On non-record, non-grid screens Ctrl+P asks Print what? (Content: panels as titled sections without sidebar, title bar, key lines or borders; Screen: the terminal as drawn). Every document carries the app header (instance, breadcrumb, server, user, time) and footer (client and server, filter/sort line, Page n of m), rendered by qbit-printing 2.2 (printingRenderToPdf).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The Online tile reads the session store's storedSession table first (active sessions and distinct users), falls back to you plus collaboration presence, never says 'nobody around' while signed in, and the saver and lock keep the presence lease. The Query mascot is regenerated at three sizes from the qrun.io/query hero SVG in the logo's indigo (packages/tui/scripts/gen-query-art.mjs), with landmark tests per size.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
A shared markdown renderer in core handles entities, headings, lists, bold/code and pipe tables for assistant answers; links render as 'label ↗' numbered once per target (Tab, Enter, u); the CLI prints the same blocks as sub-tables. F12 toggles the Assistant panel on every screen, keeping the conversation, context and draft; Esc hides; Ctrl+G, :ask and a click on 12Ask do the same; the F-key bar gains 11/12Ask at 120+ columns.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
isBrokenPipe also covers ECONNRESET, ERR_STREAM_DESTROYED and ERR_STREAM_WRITE_AFTER_END; an uncaughtException handler exits 0 on a broken pipe; io.out/io.err go through safeWrite; the top-level catch exits 0 immediately. The tests close the read end before the first write and after the first chunk of a 5,000-record answer.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
docs/packaging carries the real sha256 sums from the cli-v1.0.0 release. scripts/update-packaging.mjs now parses shasum lines strictly, requires 64 lowercase hex and non-zero sums for every target, validates both files before writing anything, and exits 1 with nothing written otherwise; covered by scripts/update-packaging.test.mjs (npm test runs test:scripts).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
qqq 1.0.0: the command-line client and the full-screen terminal UI (qqq ui) for QQQ applications over the UI API (/qqq/v1), with @qrun-io/qqq-cli 1.0.0, @qrun-io/qqq-core 1.0.0, @qrun-io/qqq-ui-api-client 1.8.0 and @qrun-io/qqq-ui-api-conformance 1.6.0 going final together. Squash of the release/1.0.0 branch at 79ba68e (the branch is kept with the full signed history; the tags v1.8.0 and cli-v1.0.0 point at that commit, which is what the released binaries were built from). See CHANGELOG.md [1.0.0] and docs/release-notes/1.0.0.md.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- @qrun-io/qqq-ui-api-client: typed client generated (openapi-typescript +
openapi-fetch) from the merged UI API document; device-flow sign-in, refresh,
UiApiError (BasicErrorResponseV1), SSE reader
- @qrun-io/qqq-cli: qqq login/whoami/apps/tables/query/get/run/jobs/tail,
only through /qqq/v1 with Authorization: Bearer
- @qrun-io/qqq-ui-api-conformance: black-box suite + qqq-dev-idp
- scripts/merge-spec.mjs, Prism mock, CI and GitHub Packages publish workflows
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>