From a4860c1ec373d961354dc61bcb676d9aefccec1a Mon Sep 17 00:00:00 2001 From: Petr Date: Tue, 25 Aug 2026 15:08:38 +0200 Subject: [PATCH] docs: keep version tags out of markdown headings (CONTRIBUTING rule) Moves the (since vNEXT) tags out of four section headings -- the workspace-workflow.md load-types section plus three gotchas.md entries from #695, #692 and #681 -- onto each section's first body line, so the heading anchor slugs stay stable when the placeholder resolves at release. Same fix pattern as PR #691; the serve --config-dir heading is changed byte-identically to that branch so the two merge cleanly in either order. --- plugins/kbagent/skills/kbagent/references/gotchas.md | 12 +++++++----- .../skills/kbagent/references/workspace-workflow.md | 4 ++-- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/plugins/kbagent/skills/kbagent/references/gotchas.md b/plugins/kbagent/skills/kbagent/references/gotchas.md index 6704f9de..5c6afcdf 100644 --- a/plugins/kbagent/skills/kbagent/references/gotchas.md +++ b/plugins/kbagent/skills/kbagent/references/gotchas.md @@ -1337,7 +1337,9 @@ events and emits a final `done` SSE frame mirroring the same record. components sharing a config ID, a deleted parent config, or a failed lookup all yield `""` rather than a guess. A blank name never means the subscription is inactive. -## Notification subscriptions can now be written, and the write path has sharp edges (since vNEXT) +## Notification subscriptions can now be written, and the write path has sharp edges + +*(since vNEXT)* - **`notification replace-recipient` always mints a NEW `subscription_id`.** The Notification Service has **no update primitive** -- there is no PATCH or @@ -4558,9 +4560,9 @@ shapes. today a deny policy gates only `/auth/*`, not the ~30 other routers a session token can otherwise reach. -## `serve` honors the root-level `--config-dir` (since vNEXT) +## `serve` honors the root-level `--config-dir` -`serve` is the only subcommand carrying a `--config-dir` of its own, so the +*(since vNEXT)* `serve` is the only subcommand carrying a `--config-dir` of its own, so the flag has two possible positions. The precedence is **most specific wins**, matching what `kbagent repl` does with the root flags: @@ -4583,9 +4585,9 @@ resolution is left to the server, which lands on the same directory anyway. -- if the aliases are not the ones in the directory you named, the flag was in the position your version ignores. -## `workspace load` now auto-CLONEs eligible tables instead of always COPYing (since vNEXT, closes #687) +## `workspace load` now auto-CLONEs eligible tables instead of always COPYing -Before this, `workspace load` always sent a plain `copy` (the API's own +*(since vNEXT, closes #687)* Before this, `workspace load` always sent a plain `copy` (the API's own default when `loadType` is omitted) -- a 282 GB table load burned warehouse credits for hours where `clone` is metadata-only and finishes in seconds. kbagent now mirrors the server's `LoadTypeDecider` per table. diff --git a/plugins/kbagent/skills/kbagent/references/workspace-workflow.md b/plugins/kbagent/skills/kbagent/references/workspace-workflow.md index 1417c776..c422fb87 100644 --- a/plugins/kbagent/skills/kbagent/references/workspace-workflow.md +++ b/plugins/kbagent/skills/kbagent/references/workspace-workflow.md @@ -91,9 +91,9 @@ kbagent --json workspace query \ --sql "SELECT * FROM \"table1\" LIMIT 10" ``` -## Load types: clone / copy / view (since vNEXT, #687) +## Load types: clone / copy / view -`workspace load` supports three load types. **Default (no `--load-type`)**: +*(since vNEXT, #687)* `workspace load` supports three load types. **Default (no `--load-type`)**: kbagent decides per table, mirroring the server's own eligibility rules -- zero-copy `clone` when the table is on the same backend as the workspace with a full (unfiltered) load and no external-schema/Analytics-Hub source