Skip to content

v0.1.25

Choose a tag to compare

@github-actions github-actions released this 03 Aug 03:06

What's Changed

  • release: v0.1.25 (158cc2d)
  • Stop the audit-doc gate failing on its own date stamp (cccd0fe)
  • perf(drafts): clone gitignore-aware trees by bumping rift to 0.0.10-8 (3015f6c)
  • Cover nested edits and deletions in the draft apply! round-trip (9990742)
  • Let a provider timeout drain the queue instead of wedging it (346f09b)
  • Pin the wrapped-401 cooldown with a test (3ed40ce)
  • Spot the 401s a wrapped fleet failure hides on :attempts (086d0c1)
  • Name cat's own key when a batch entry is malformed (dd2b1d8)
  • Trust a corporate CA without patching the JDK (ca46cc9)
  • Prune build directories at any depth, not just the tree root (04f8f9e)
  • Drop the OPEN pill from session list rows (479635c)
  • Regenerate the audit inventory for svar 0.7.96 (eee6051)
  • Stop op hooks from killing the call they only observe (14a594d)
  • Name the draft that carries my uncommitted changes (a883c1d)
  • Read the credential verdict off the attempts, not the wrapper (be3daff)
  • Open the app from the share extension with the modern selector (4e28768)
  • Speak of stopping and starting a REPL, never restarting it (866b981)
  • Name the container in the git tool's raw-result contract (44b2b4c)
  • Renumber provider priority whenever the router is reordered (b778185)
  • Read the routing attempts off the live throwable (4bcf775)
  • Let a provider fetch its key from a command instead of an env var (2fd49ce)
  • Stop calling a dropped connection a rejection (4ff5d0f)
  • Revert "Retry a connect timeout that arrives wearing a status code" (c349c70)
  • Bind skill as a Python verb beside its native tool (dfbb1e3)
  • Retire the restart op from REPL and resource lifecycle (5921c47)
  • Stop the environment running code before the jail exists (a7c0648)
  • Format the pack-owned scan the way zprint wants it (3ae016e)
  • Retry a connect timeout that arrives wearing a status code (712ee9f)
  • Let the language pack own the parallel scan (dfc7ed1)
  • Stop a child's Ctrl-C from killing the gateway (56ae911)
  • Name what killed the gateway (0e6df31)
  • Compile the lint target without ever running it (47cd489)
  • Find the needle in a 20 MB file, and stop sweeping forever (4930232)
  • Never let the audit record downgrade a license it already vetted (5995096)
  • Retry every App Store Connect call, not only the two that failed (b097a6d)
  • One attachment control in the composer, not two (a5a2c2c)
  • Do not lose a release to one 401 from Apple (64c6f56)
  • Sign with the distribution identity the keychain actually has (87cb8f2)
  • Sign the archive by hand, so CI stops minting certificates (b5ad3c9)
  • Name a profile for every bundle, or export automatically (87dae36)
  • Export the archive even when only the app has a pinned profile (4fc4a21)
  • audit: read imaging 0.1.7 license and size from the published artifact (34333c5)
  • Move the imaging pin to 0.1.7 and lock the pptx shim against it (70435b2)
  • Floor the eval watchdog above the LONGEST legal shell budget (7c4fb70)
  • Offer "Start the session in" when the TUI opens a new session (e902804)
  • Test the companion share intake, and pin its dependencies exactly (0d88054)
  • test(pptx): lock the imaging 0.1.6 chart part, picture crop and read-back (2922d5d)
  • Close the last descriptor doors: raw io.FileIO and host sqlite3 handles (bd08a40)
  • Say what n and until actually bound in shell wait (a0680bb)
  • Accept system shares into the companion composer (1b572e7)
  • test(mcp): assert the kill brake by pool state, not by an exact connect log (95a0720)
  • test(sandbox): make the fd hardening cases actually discriminate (7a5daf3)
  • test(sandbox): pin fd reclamation against every open door (746804d)
  • test: prove parallel OAuth refresh by overlap, not wall-clock (bcaf6d8)
  • Reclaim and cap sandbox Python file descriptors (61505ab)
  • chore: com.blockether/imaging 0.1.6 — pptx shim round-trip asserted unconditionally (e71d6dc)
  • fix(shell): recover from descriptor exhaustion instead of blaming the JDK (43e23a5)
  • test(editing): pin struct_index/cat ranges parity for absent, empty and bad shapes (9fd9d01)
  • refactor(prompt): keep the sleep/poll prohibition only in the tool description (1a48581)
  • feat(editing): accept [-1, -1] as cat/struct_index whole-file sentinel (464dc6c)
  • refactor(python): read pyproject table headers with the tree-sitter TOML grammar (0e78932)
  • fix(python): detect uv by TOML table header, not substring (a6eb925)
  • feat(python): name the undeclared src import root when pytest collection fails (194487f)
  • fix(test): gate the pptx re-open assertion on the resolved imaging reader (cdfaaf2)
  • fix(audit): keep the generator's prose in sync and refresh the inventory (be1c2b9)
  • test(python): lock pytest node-id selection and --collect-only (2c8aa3d)
  • feat(prompt): make reproduction REPL-first and keep it as a test (e5809ae)
  • fix(test): lock the fold card on bin/vis-agent (e22406e)
  • fix(python): support pytest node-id selection and --collect-only (1be741e)
  • fix(shell): capture streams whole and clip only the card (e31fc62)
  • fix(python): honor explicit run_tests targets and never green an empty run (66d90e4)
  • fix(python): re-expand folded kwargs for Python-backed tool symbols (0fdf52d)
  • fix(shell): require until for wait and never report a dead process as running (4d01e8d)
  • chore(deps): bump tree-sitter-language-pack to 1.12.3-blockether.38 (7d7e0d6)
  • fix(companion): one owner for transcript scroll anchoring (14c0e51)
  • fix(mcp,acp): string-keyed session-server results, like every MCP surface (82aba80)
  • feat(shell): wait for a background job's condition, not a guessed clock (574cdc5)
  • fix(routing): keep both halves of a session model pin canonical (dcfede3)
  • fix(mcp): refuse an unauthorized OAuth server instead of blocking on a browser (0ccba71)
  • fix(config,cli): render a vis.yml provider id verbatim, never capitalized (a838d9e)
  • fix(companion): follow the gateway's session.model_updated broadcast (f8177e8)
  • fix(mcp,routing): total JSON-RPC encoding, headless MCP OAuth, pin fixes (a10ba61)
  • docs(site): tagline and sub say the mechanism, not the metaphor (8cfd793)
  • fix(companion): keep the reader's line by anchoring an element, not a height (4c4c4b1)
  • test(loop): pin the auth cooldown and the pinned-model router (aa386b0)
  • fix(providers): log out a key-only provider by clearing its key, keeping its entry (1a3a9c3)
  • chore(cli,structural): formatter reflow and reflection hints (fa5a4f0)
  • docs(readme): lead with Clojars and license, drop build and allowlist sections (4718fc6)
  • test(loop): mcp exposes one mcp__call verb, server-only lists schemas (54f90c3)
  • feat(companion,install): camera capture, install script as a release asset, documented Clojars (7618336)
  • fix(loop): request-bound provider credentials so a rotated OAuth token never strands a turn (9147f73)
  • release: update release notes for v0.1.24 (bed4669)

Package changes

com.blockether/vis

  • release: v0.1.25 (158cc2d)
  • Stop the audit-doc gate failing on its own date stamp (cccd0fe)
  • perf(drafts): clone gitignore-aware trees by bumping rift to 0.0.10-8 (3015f6c)
  • Cover nested edits and deletions in the draft apply! round-trip (9990742)
  • Let a provider timeout drain the queue instead of wedging it (346f09b)
  • Pin the wrapped-401 cooldown with a test (3ed40ce)
  • Spot the 401s a wrapped fleet failure hides on :attempts (086d0c1)
  • Name cat's own key when a batch entry is malformed (dd2b1d8)
  • Trust a corporate CA without patching the JDK (ca46cc9)
  • Prune build directories at any depth, not just the tree root (04f8f9e)
  • Drop the OPEN pill from session list rows (479635c)
  • Regenerate the audit inventory for svar 0.7.96 (eee6051)
  • Stop op hooks from killing the call they only observe (14a594d)
  • Name the draft that carries my uncommitted changes (a883c1d)
  • Read the credential verdict off the attempts, not the wrapper (be3daff)
  • Open the app from the share extension with the modern selector (4e28768)
  • Speak of stopping and starting a REPL, never restarting it (866b981)
  • Name the container in the git tool's raw-result contract (44b2b4c)
  • Renumber provider priority whenever the router is reordered (b778185)
  • Read the routing attempts off the live throwable (4bcf775)
  • Let a provider fetch its key from a command instead of an env var (2fd49ce)
  • Stop calling a dropped connection a rejection (4ff5d0f)
  • Revert "Retry a connect timeout that arrives wearing a status code" (c349c70)
  • Bind skill as a Python verb beside its native tool (dfbb1e3)
  • Retire the restart op from REPL and resource lifecycle (5921c47)
  • Stop the environment running code before the jail exists (a7c0648)
  • Format the pack-owned scan the way zprint wants it (3ae016e)
  • Retry a connect timeout that arrives wearing a status code (712ee9f)
  • Let the language pack own the parallel scan (dfc7ed1)
  • Stop a child's Ctrl-C from killing the gateway (56ae911)
  • Name what killed the gateway (0e6df31)
  • Find the needle in a 20 MB file, and stop sweeping forever (4930232)
  • Never let the audit record downgrade a license it already vetted (5995096)
  • Retry every App Store Connect call, not only the two that failed (b097a6d)
  • One attachment control in the composer, not two (a5a2c2c)
  • Do not lose a release to one 401 from Apple (64c6f56)
  • Sign with the distribution identity the keychain actually has (87cb8f2)
  • Sign the archive by hand, so CI stops minting certificates (b5ad3c9)
  • Name a profile for every bundle, or export automatically (87dae36)
  • Export the archive even when only the app has a pinned profile (4fc4a21)
  • audit: read imaging 0.1.7 license and size from the published artifact (34333c5)
  • Move the imaging pin to 0.1.7 and lock the pptx shim against it (70435b2)
  • Floor the eval watchdog above the LONGEST legal shell budget (7c4fb70)
  • Test the companion share intake, and pin its dependencies exactly (0d88054)
  • test(pptx): lock the imaging 0.1.6 chart part, picture crop and read-back (2922d5d)
  • Close the last descriptor doors: raw io.FileIO and host sqlite3 handles (bd08a40)
  • Say what n and until actually bound in shell wait (a0680bb)
  • Accept system shares into the companion composer (1b572e7)
  • test(mcp): assert the kill brake by pool state, not by an exact connect log (95a0720)
  • test(sandbox): make the fd hardening cases actually discriminate (7a5daf3)
  • test(sandbox): pin fd reclamation against every open door (746804d)
  • test: prove parallel OAuth refresh by overlap, not wall-clock (bcaf6d8)
  • Reclaim and cap sandbox Python file descriptors (61505ab)
  • chore: com.blockether/imaging 0.1.6 — pptx shim round-trip asserted unconditionally (e71d6dc)
  • fix(shell): recover from descriptor exhaustion instead of blaming the JDK (43e23a5)
  • test(editing): pin struct_index/cat ranges parity for absent, empty and bad shapes (9fd9d01)
  • refactor(prompt): keep the sleep/poll prohibition only in the tool description (1a48581)
  • feat(editing): accept [-1, -1] as cat/struct_index whole-file sentinel (464dc6c)
  • feat(python): name the undeclared src import root when pytest collection fails (194487f)
  • fix(test): gate the pptx re-open assertion on the resolved imaging reader (cdfaaf2)
  • fix(audit): keep the generator's prose in sync and refresh the inventory (be1c2b9)
  • test(python): lock pytest node-id selection and --collect-only (2c8aa3d)
  • feat(prompt): make reproduction REPL-first and keep it as a test (e5809ae)
  • fix(test): lock the fold card on bin/vis-agent (e22406e)
  • fix(python): support pytest node-id selection and --collect-only (1be741e)
  • fix(shell): capture streams whole and clip only the card (e31fc62)
  • fix(python): honor explicit run_tests targets and never green an empty run (66d90e4)
  • fix(python): re-expand folded kwargs for Python-backed tool symbols (0fdf52d)
  • fix(shell): require until for wait and never report a dead process as running (4d01e8d)
  • chore(deps): bump tree-sitter-language-pack to 1.12.3-blockether.38 (7d7e0d6)
  • fix(companion): one owner for transcript scroll anchoring (14c0e51)
  • fix(mcp,acp): string-keyed session-server results, like every MCP surface (82aba80)
  • feat(shell): wait for a background job's condition, not a guessed clock (574cdc5)
  • fix(routing): keep both halves of a session model pin canonical (dcfede3)
  • fix(mcp): refuse an unauthorized OAuth server instead of blocking on a browser (0ccba71)
  • fix(config,cli): render a vis.yml provider id verbatim, never capitalized (a838d9e)
  • fix(companion): follow the gateway's session.model_updated broadcast (f8177e8)
  • fix(mcp,routing): total JSON-RPC encoding, headless MCP OAuth, pin fixes (a10ba61)
  • docs(site): tagline and sub say the mechanism, not the metaphor (8cfd793)
  • fix(companion): keep the reader's line by anchoring an element, not a height (4c4c4b1)
  • test(loop): pin the auth cooldown and the pinned-model router (aa386b0)
  • fix(providers): log out a key-only provider by clearing its key, keeping its entry (1a3a9c3)
  • chore(cli,structural): formatter reflow and reflection hints (fa5a4f0)
  • docs(readme): lead with Clojars and license, drop build and allowlist sections (4718fc6)
  • test(loop): mcp exposes one mcp__call verb, server-only lists schemas (54f90c3)
  • feat(companion,install): camera capture, install script as a release asset, documented Clojars (7618336)
  • fix(loop): request-bound provider credentials so a rotated OAuth token never strands a turn (9147f73)
  • release: update release notes for v0.1.24 (bed4669)

com.blockether/vis-channel-tui

  • Retire the restart op from REPL and resource lifecycle (5921c47)
  • Offer "Start the session in" when the TUI opens a new session (e902804)
  • fix(routing): keep both halves of a session model pin canonical (dcfede3)
  • fix(providers): log out a key-only provider by clearing its key, keeping its entry (1a3a9c3)
  • feat(companion,install): camera capture, install script as a release asset, documented Clojars (7618336)

com.blockether/vis-language-clojure

  • Speak of stopping and starting a REPL, never restarting it (866b981)
  • Retire the restart op from REPL and resource lifecycle (5921c47)
  • Compile the lint target without ever running it (47cd489)

com.blockether/vis-language-python

  • Retire the restart op from REPL and resource lifecycle (5921c47)
  • refactor(python): read pyproject table headers with the tree-sitter TOML grammar (0e78932)
  • fix(python): detect uv by TOML table header, not substring (a6eb925)
  • fix(python): honor explicit run_tests targets and never green an empty run (66d90e4)

com.blockether/vis-language-typescript-bun

  • Retire the restart op from REPL and resource lifecycle (5921c47)

com.blockether/vis-persistance-sqlite

  • feat(companion,install): camera capture, install script as a release asset, documented Clojars (7618336)

com.blockether/vis-workspace-rift

  • perf(drafts): clone gitignore-aware trees by bumping rift to 0.0.10-8 (3015f6c)
  • Prune build directories at any depth, not just the tree root (04f8f9e)

Full Changelog: v0.1.24...v0.1.25