Bump package version to v0.1.0:93 (reminders + NL-query)

Ships the next s9pk for the box, which jumps from v91 and so bundles two
in-repo-but-undeployed workstreams:
  - W1 reminders & follow-ups (v92): in-app migration 0006 (additive — a new
    `reminders` table + indexes; verified up/down against a copy of crm.db).
  - W2 natural-language query: read-only POST /api/query/nl + /api/query/catalog
    (require_bot_or_admin, audited), local-model translation, no schema change.

The Matrix Q&A client for W2 ships separately on the Spark and depends on this
endpoint being live on the box.
This commit is contained in:
Keysat
2026-06-18 19:56:53 -05:00
parent 68106d7a5a
commit f7b03ee109
3 changed files with 28 additions and 4 deletions
+22
View File
@@ -0,0 +1,22 @@
import { VersionInfo } from '@start9labs/start-sdk'
// Natural-language query (W2) — read-only "ask the database in plain English". A curated,
// parameterized query catalog (backend/nl_query/) sits behind a strict slot validator that is
// the trust boundary: a caller (or the local model) supplies only typed slot VALUES, never a
// table/column, an operator, or SQL. A local-Qwen translator maps a question -> {intent, slots}
// via Spark Control, so the question never leaves the box (no Claude, no redaction); results
// never go back to any model. New endpoints POST /api/query/nl + GET /api/query/catalog
// (require_bot_or_admin, audited as entity_type='nl_query'). No schema change — read-only — so
// up/down are no-ops. The Matrix Q&A client (a dedicated room + the ?/@bot trigger) ships
// separately on the Spark, not in this s9pk.
export const v_0_1_0_93 = VersionInfo.of({
version: '0.1.0:93',
releaseNotes: {
en_US: [
'Natural-language query (read-only): ask the fundraising database in plain English from',
'the Matrix Q&A room — translated on-box by the local model (nothing leaves the box),',
'answering only curated, parameterized queries.',
].join(' '),
},
migrations: { up: async () => {}, down: async () => {} },
})