Skip to content

v0.1.4

Choose a tag to compare

@github-actions github-actions released this 16 Jul 08:58

What's Changed

  • Revert "build(release): publish ONE canonical com.blockether/vis jar" (a187219)
  • build: publish ONE bundled com.blockether/vis jar instead of sibling packages (c2bde1c)
  • build(release): publish ONE canonical com.blockether/vis jar (8e6385f)
  • feat(attachments): paint vis_attach images inline in the TUI (d3fc1f1)
  • perf(channel-tui): defer whole-bubble clipboard formatting to click time (#24) (7840d0b)
  • fix(shim-matplotlib): accept categorical (string) x/y on bar/barh (7896231)
  • ci(native): drop native-experiment.yml — no Intel/macos-13 build in the matrix (7b595c5)
  • fix(render): drop the 🖼 emoticon placeholder from :img nodes (fed0194)
  • fix(language-surface): park run_tests outside the 30s native tool wall (60d096f)
  • refactor(editing)!: remove the ls tool — find_files/outline/rg supersede it (7aeef72)
  • docs(prompt): enforce full-output access + python/shell narrowing across shell, mcp, bridge fragments (990d9bc)
  • Merge remote-tracking branch 'origin/main' into ci/native-free-runners (b2d60bd)
  • ci(native): probe free macos-13 intel runner + gateway smoke test (c5b3cef)
  • chore(verify): ratchet boxed-math baseline to 0 (43f8b71)
  • fix(persist,ctx): keep realized non-lazy seqs in error :data instead of the {:vis/ref :expr} sentinel (d3c6ed7)
  • perf(boxed-math): eliminate the remaining 127 boxed-math warnings project-wide (f918dc9)
  • ci(native): build macOS arm64 release on free macos-15 runner (5796db1)
  • ci(native): raise arm probe timeout to 240m, drop dead intel/linux probes (0a0fe93)
  • feat(config,search): YAML config tiers + :search :include-gitignored-paths overlay (#23) (8d47c25)
  • fix(provider): retry pre-response TTFT timeouts (b9d4687)
  • feat(bench): add readable Vis transcripts (d8f8c58)
  • fix(channel-tui): stop streaming FULL-frame spin from :scroll identity churn (bd0c5c5)
  • perf(boxed-math): primitive leaves in asr, persistance-sqlite, shim-sqlite3, attachments (15d48cc)
  • perf(boxed-math): coerce primitive leaves in shim-pil, format, foundation-search, file-picker (44b68ad)
  • perf(shims,shell,channel-web,channel-telegram): eliminate boxed math in cold render/format paths (489c0b6)
  • fix(transcript): keep bottom code-bg padding on expanded paste disclosure (ed37efd)
  • ci(native): add linux-x64 probe to native-experiment matrix (cf6fa27)
  • perf(build): restore -Os + interpreter-only GraalPy (accidentally reverted) (ee3ce58)
  • ci(native): trigger experiment on branch push (fc385ea)
  • ci(native): probe free macOS runners + env-tunable builder heap (22b22db)
  • fix(gateway): drain a message queued after Esc as soon as the cancelled turn unwinds (b4afb32)
  • feat(compaction): session_fold receipt carries saved-tokens note and op-card headline (f56fced)
  • fix(theme): hint rel-luminance ^double to kill Math/abs reflection; baseline 1977->395 (a143336)
  • feat(loop): surface the saved-tokens note on fold breadcrumb cards (5b21d98)
  • docs(language-surface): teach manual reload after editing source (no auto-reload) (321c48f)
  • refactor(loop): clarify fold card wording (saved ~tokens / utilization %) (f147366)
  • fix(language-clojure): :only matches fully-qualified var names and errors on no-match (1b897c6)
  • refactor(loop,extension): park the native tool wall during slow setup instead of startup budgets (7cd3e3e)
  • fix(gateway): clear remaining boxed-math warnings in state.clj and server.clj (9b65543)
  • chore(deps): bump svar to 0.7.62 (Responses-API "completed" clean-stop fix) (91fb359)
  • fix(loop,gateway,language-surface): boxed-math cleanup + startup-aware native tool timeouts (8fee45a)
  • fix(loop): fail stuck native tool calls faster (9898894)
  • fix(native): use glibc-compatible FFF (f0d135e)
  • fix(editing): clean boxed math and tighten hashline error data (f019e13)
  • fix(tui): compact provider limit footer resets (c80cf07)
  • fix(language-surface): name the lint target in the LINT_CODE headline (28f6f8a)
  • ci: cache docs site dependencies (a542387)
  • ci: run docs site on java 25 (b5fa21e)
  • ci: upgrade actions to node24 (e0ed752)
  • feat(cli): add vis python standalone interpreter exposing GraalPy sandbox + shims (1afcec0)
  • feat(context): surface reclaimed tokens + live utilization in fold readouts (65cffcf)
  • refactor(channel-tui): move box rule builders to lanterna (600386a)
  • ci: cache classpath dependencies (798dee3)
  • refactor(channel-tui): reuse lanterna clamp and clear table boxed math (afd5ae5)
  • fix(clojure): autostart repl_eval with stale id and dir (212a660)
  • fix(channel-tui): remove duplicate queued prompt echo (e549552)
  • fix(tui): improve project picker selection (3123670)
  • refactor(channel-tui): hoist canonical ^long clamp into primitives, dedup call sites (98d4e62)
  • fix(channel-tui): eliminate all boxed-math warnings across the TUI (2697ef5)
  • feat(shim-paramiko): add server-side API surface (ServerInterface/SFTPServer/…) (48d41c4)
  • chore: ignore prompt regression outputs (958ab10)
  • style: format channel sources (605ed16)
  • chore(lint): exclude generated Telemere vars (8b8cb09)
  • feat(swe-bench): add GLM-5.2 effort parity evaluation (846328a)
  • fixup! fix(native): require tree-sitter platform artifact (12afc4a)
  • test: repair stale UI and editing contracts (8bf435e)
  • feat(eval): add provider-native reasoning effort (c415ef5)
  • fix(native): require tree-sitter platform artifact (e039e4f)
  • feat(editing): strip echo diffs from python_execution stdout for patch/write/struct_patch (571b199)
  • perf(channel-tui): eliminate boxed-math in render pipeline (9c09375)
  • docs(graalpython): document the two Python surfaces (sandbox vs project interpreter) (a4e00cd)
  • perf(loop): drop echo diff from patch/write results on model wire (8653e0c)
  • feat(language-python): run_tests handler with graalpy (default) + project pytest backends (2d4b667)
  • fix(channel-tui): keep a send-during-cancel in the editor, never queued (c6227d9)
  • perf(editing): primitive-hint diff-preview helpers in editing/core.clj (6f879e1)
  • perf(tui): primitive-hint components.clj justify-line/justify-segs (507d832)
  • perf(tui): long-hint provider.clj copilot dialogs + card painters (0bbd7de)
  • feat(shim-pytest): pytest.main([paths]) discovers test files on disk (#19) (4755d28)
  • chore(graal): re-baseline boxed-math ratchet to 2079 (external loop fix +1) (690d36e)
  • refactor(channel-tui): delegate ANSI fold/slice to lanterna 3.1.5-vis.26 (48b24ac)
  • fix(loop): key post-refresh 401 lag detection on recency, not token value (b6de8d5)
  • feat(cat): mark non-contiguous slices with canonical ⋯ divider (7cc5740)
  • perf(tui): primitive-hint provider.clj + dialogs.clj leaf layout helpers (c05d7be)
  • fix(provider-github-copilot): subtract refresh margin on the refresh_in mint branch (#21) (8334a21)
  • refactor(tui): move column layout kernels into lanterna fork (vis.25) (e8bcb2d)
  • chore: update python shims, docs, and tui channel (5444a1f)
  • perf(tui): primitive-hint dialog geometry producers to cut boxed math (e2ed742)
  • refactor(tui): collapse duplicate ellipsize into one lanterna-backed p/ellipsize (9082bf6)
  • perf(tui): move column measurement into lanterna fork (vis.24), delegate primitives (ea6d17d)
  • perf(tui): primitive-hint render.clj input/geometry leaf helpers (296c13c)
  • perf(tui): primitive-hint dialogs.clj leaf layout helpers to cut boxed math (45da5d1)
  • chore(graal): re-baseline boxed-math ratchet to 2270 (pre-existing drift; reflection now 0) (9a17a06)
  • fix(graal): add type hints to silence reflective calls + advertise sandbox shims (4d17b60)
  • Remove the leftovers (709c145)
  • feat(compaction): breadcrumb-canonical fold gist, utilization keeps only the live budget (eec7c97)
  • refactor(sqlite): squash migrations V1..V10 into a single consolidated V1__schema.sql (c089801)
  • chore: sync workspace changes across core, extensions, and docs (9a68ff5)
  • feat(compaction): merge fold ledger into utilization as one-line readout (c35868e)
  • feat(python-extensions): author LLM providers from Python (e370650)
  • feat(env-python): guard against GraalVM/Truffle version mismatch on --jvm (9aaf179)
  • chore: sync workspace changes across core, extensions, and docs (e410b35)
  • perf(channel-tui,git): route footer git through gateway, drop dead client-side walks; sync cache TTL to poll (3e161cb)
  • fix(verify,reflection): make graal gate actually run + zero reflection warnings (001c99f)
  • fix(loop): treat post-refresh 401 as propagation lag, not dead credential (473c0f9)
  • fix(loop): latch dead OAuth credentials gateway-wide to stop 401 refresh storms (f7a251b)
  • fix(clojure): self-heal nrepl eviction and gate test runner on repl liveness (8ee71a2)
  • perf(channel-tui): throttle render-loop scroll-ease to stop streaming CPU spin (1bffb7e)
  • perf(build): shrink native image with -Os + interpreter-only GraalPy (46e006d)
  • fix(build,ci): build native image on every commit for all platforms (793b1ba)
  • perf(channel-tui): input-text fast path + phase-tagged slow-frame logs (fc73837)
  • fix(copilot): honor refresh_in to stop the 401 'IDE token expired' storm (#16) (39635a8)
  • feat(self-docs): add per-page blurbs to vis_docs listing (767f0c9)
  • fix(loop): treat live thread interrupt as user cancel (#13) (aaae74f)
  • fix(gateway): converge auth-token rotation storm, graceful drain, DB-backed turn queue + auto-resume (c16a113)
  • chore(deps): bump com.blockether/svar 0.7.59 -> 0.7.60 (models.dev-backed catalog, slim overlays, canonical :resets-at-ms) (069da8f)
  • feat(gateway): multiplexed /v1/events — ONE SSE stream for many sessions (9594470)
  • perf(gateway/bus,repl-mgr): kill journal-scan churn + reap idle project REPLs (ee1109b)
  • feat(progress/web/tui): surface a live 'Vis is running: …' ticker for coarse activity (0e0280f)
  • fix(tui/render-test): assert the real coalesced flush contract (0de6e6a)
  • fix(tui/shell): green the suite — resume duration bug + stale expectations (bccd7d2)
  • perf(client/gateway/bridge): cut TUI typing lag + idle CPU/alloc (605d663)
  • perf(gateway/bus): adaptive tailer poll to kill idle CPU burn (17357e9)
  • fix(gateway): reap orphaned event journals + JFR recordings; isolate draft store (9dddbc5)
  • chore(rn-companion): harden app .gitignore for Expo/native build artifacts (32552ce)
  • feat(magit): colorize diff header filenames in TUI status view (1dc5830)
  • fix(language-clojure): resolve lint config from nearest .clj-kondo in nested projects (61f475f)
  • chore: wip changes to env_python, loop, prompt, compaction tests (c74adc1)
  • fix(gateway): unwedge stalled turns, drain queue, sync fs confinement (3ff2d07)
  • fix(openai-codex): retry quota fetch after oauth rotation (3bac799)
  • fix(openai-codex): honor explicit quota window duration (f64a175)
  • docs(todo): rename gateway command to vis gateway start and refresh status (2144797)
  • fix(channel-tui): single space before footer chord hint (5cd3685)
  • fix(clojure): treat "default" repl id as sentinel (a867ae4)
  • style: format sources with zprint (e15b9a3)
  • fix(companion): keep QR pairing stable while settings scroll (81ec4f1)
  • fix(companion): make settings sheet dismissible and compact (1e8f499)
  • style(companion): capitalize shared UI module (e16bdf9)
  • fix(companion): make settings full-screen and scrollable (7807b91)
  • test(gateway): lock Tailscale preference for pairing QR (6660f83)
  • fix(companion): keep gateway settings scrollable while scanning (edc1ee6)
  • fix(companion): pin gateway settings until connection recovers (116ef98)
  • fix(companion): explain gateway network failures (2b69b0e)
  • style(companion): native iOS polish without yellow chrome (a174c40)
  • style(companion): make settings feel native on iOS (68379b8)
  • feat(sandbox): add pure-Python/JVM-bridge compat shims for the GraalPy sandbox (ce5af76)
  • style(companion): format ios app before TestFlight build (11293fd)
  • feat(companion): consume canonical gateway feature surface (7b5100b)
  • feat(companion): rehydrate settled tool cards from turn trace (045ec32)
  • chore(deps): bump tree-sitter-language-pack to 1.12.3-blockether.12 (96a4f2c)
  • feat(companion): local turn-completion notifications + restore app.json / build bump (f4f08b4)
  • test(companion): jest-expo unit suite for streaming/markdown/gateway logic (8d27b64)
  • fix(companion): render streaming/unclosed markdown fences + graceful group/error handling (71545c6)
  • fix(companion): resolve iOS white-screen crash from mismatched Expo native modules (38608a4)
  • fix(companion): disable user script sandboxing on iOS app target (2987e26)
  • release: update version files for v0.1.3, bump to next dev version (0768f7c)

Package changes

com.blockether/vis

  • Revert "build(release): publish ONE canonical com.blockether/vis jar" (a187219)
  • build: publish ONE bundled com.blockether/vis jar instead of sibling packages (c2bde1c)
  • build(release): publish ONE canonical com.blockether/vis jar (8e6385f)
  • feat(attachments): paint vis_attach images inline in the TUI (d3fc1f1)
  • fix(shim-matplotlib): accept categorical (string) x/y on bar/barh (7896231)
  • ci(native): drop native-experiment.yml — no Intel/macos-13 build in the matrix (7b595c5)
  • fix(render): drop the 🖼 emoticon placeholder from :img nodes (fed0194)
  • fix(language-surface): park run_tests outside the 30s native tool wall (60d096f)
  • refactor(editing)!: remove the ls tool — find_files/outline/rg supersede it (7aeef72)
  • docs(prompt): enforce full-output access + python/shell narrowing across shell, mcp, bridge fragments (990d9bc)
  • Merge remote-tracking branch 'origin/main' into ci/native-free-runners (b2d60bd)
  • ci(native): probe free macos-13 intel runner + gateway smoke test (c5b3cef)
  • chore(verify): ratchet boxed-math baseline to 0 (43f8b71)
  • fix(persist,ctx): keep realized non-lazy seqs in error :data instead of the {:vis/ref :expr} sentinel (d3c6ed7)
  • perf(boxed-math): eliminate the remaining 127 boxed-math warnings project-wide (f918dc9)
  • ci(native): build macOS arm64 release on free macos-15 runner (5796db1)
  • ci(native): raise arm probe timeout to 240m, drop dead intel/linux probes (0a0fe93)
  • feat(config,search): YAML config tiers + :search :include-gitignored-paths overlay (#23) (8d47c25)
  • fix(provider): retry pre-response TTFT timeouts (b9d4687)
  • feat(bench): add readable Vis transcripts (d8f8c58)
  • perf(boxed-math): primitive leaves in asr, persistance-sqlite, shim-sqlite3, attachments (15d48cc)
  • perf(boxed-math): coerce primitive leaves in shim-pil, format, foundation-search, file-picker (44b68ad)
  • perf(shims,shell,channel-web,channel-telegram): eliminate boxed math in cold render/format paths (489c0b6)
  • ci(native): add linux-x64 probe to native-experiment matrix (cf6fa27)
  • perf(build): restore -Os + interpreter-only GraalPy (accidentally reverted) (ee3ce58)
  • ci(native): trigger experiment on branch push (fc385ea)
  • ci(native): probe free macOS runners + env-tunable builder heap (22b22db)
  • fix(gateway): drain a message queued after Esc as soon as the cancelled turn unwinds (b4afb32)
  • feat(compaction): session_fold receipt carries saved-tokens note and op-card headline (f56fced)
  • fix(theme): hint rel-luminance ^double to kill Math/abs reflection; baseline 1977->395 (a143336)
  • feat(loop): surface the saved-tokens note on fold breadcrumb cards (5b21d98)
  • docs(language-surface): teach manual reload after editing source (no auto-reload) (321c48f)
  • refactor(loop): clarify fold card wording (saved ~tokens / utilization %) (f147366)
  • refactor(loop,extension): park the native tool wall during slow setup instead of startup budgets (7cd3e3e)
  • fix(gateway): clear remaining boxed-math warnings in state.clj and server.clj (9b65543)
  • chore(deps): bump svar to 0.7.62 (Responses-API "completed" clean-stop fix) (91fb359)
  • fix(loop,gateway,language-surface): boxed-math cleanup + startup-aware native tool timeouts (8fee45a)
  • fix(loop): fail stuck native tool calls faster (9898894)
  • fix(native): use glibc-compatible FFF (f0d135e)
  • fix(editing): clean boxed math and tighten hashline error data (f019e13)
  • fix(tui): compact provider limit footer resets (c80cf07)
  • fix(language-surface): name the lint target in the LINT_CODE headline (28f6f8a)
  • ci: cache docs site dependencies (a542387)
  • ci: run docs site on java 25 (b5fa21e)
  • ci: upgrade actions to node24 (e0ed752)
  • feat(cli): add vis python standalone interpreter exposing GraalPy sandbox + shims (1afcec0)
  • feat(context): surface reclaimed tokens + live utilization in fold readouts (65cffcf)
  • ci: cache classpath dependencies (798dee3)
  • feat(shim-paramiko): add server-side API surface (ServerInterface/SFTPServer/…) (48d41c4)
  • chore: ignore prompt regression outputs (958ab10)
  • chore(lint): exclude generated Telemere vars (8b8cb09)
  • feat(swe-bench): add GLM-5.2 effort parity evaluation (846328a)
  • fixup! fix(native): require tree-sitter platform artifact (12afc4a)
  • test: repair stale UI and editing contracts (8bf435e)
  • feat(eval): add provider-native reasoning effort (c415ef5)
  • fix(native): require tree-sitter platform artifact (e039e4f)
  • feat(editing): strip echo diffs from python_execution stdout for patch/write/struct_patch (571b199)
  • perf(channel-tui): eliminate boxed-math in render pipeline (9c09375)
  • docs(graalpython): document the two Python surfaces (sandbox vs project interpreter) (a4e00cd)
  • perf(loop): drop echo diff from patch/write results on model wire (8653e0c)
  • perf(editing): primitive-hint diff-preview helpers in editing/core.clj (6f879e1)
  • perf(tui): primitive-hint components.clj justify-line/justify-segs (507d832)
  • perf(tui): long-hint provider.clj copilot dialogs + card painters (0bbd7de)
  • feat(shim-pytest): pytest.main([paths]) discovers test files on disk (#19) (4755d28)
  • chore(graal): re-baseline boxed-math ratchet to 2079 (external loop fix +1) (690d36e)
  • fix(loop): key post-refresh 401 lag detection on recency, not token value (b6de8d5)
  • feat(cat): mark non-contiguous slices with canonical ⋯ divider (7cc5740)
  • perf(tui): primitive-hint provider.clj + dialogs.clj leaf layout helpers (c05d7be)
  • refactor(tui): move column layout kernels into lanterna fork (vis.25) (e8bcb2d)
  • chore: update python shims, docs, and tui channel (5444a1f)
  • perf(tui): primitive-hint dialog geometry producers to cut boxed math (e2ed742)
  • perf(tui): move column measurement into lanterna fork (vis.24), delegate primitives (ea6d17d)
  • perf(tui): primitive-hint render.clj input/geometry leaf helpers (296c13c)
  • perf(tui): primitive-hint dialogs.clj leaf layout helpers to cut boxed math (45da5d1)
  • chore(graal): re-baseline boxed-math ratchet to 2270 (pre-existing drift; reflection now 0) (9a17a06)
  • fix(graal): add type hints to silence reflective calls + advertise sandbox shims (4d17b60)
  • Remove the leftovers (709c145)
  • feat(compaction): breadcrumb-canonical fold gist, utilization keeps only the live budget (eec7c97)
  • refactor(sqlite): squash migrations V1..V10 into a single consolidated V1__schema.sql (c089801)
  • chore: sync workspace changes across core, extensions, and docs (9a68ff5)
  • feat(compaction): merge fold ledger into utilization as one-line readout (c35868e)
  • feat(python-extensions): author LLM providers from Python (e370650)
  • feat(env-python): guard against GraalVM/Truffle version mismatch on --jvm (9aaf179)
  • chore: sync workspace changes across core, extensions, and docs (e410b35)
  • perf(channel-tui,git): route footer git through gateway, drop dead client-side walks; sync cache TTL to poll (3e161cb)
  • fix(verify,reflection): make graal gate actually run + zero reflection warnings (001c99f)
  • fix(loop): treat post-refresh 401 as propagation lag, not dead credential (473c0f9)
  • fix(loop): latch dead OAuth credentials gateway-wide to stop 401 refresh storms (f7a251b)
  • fix(clojure): self-heal nrepl eviction and gate test runner on repl liveness (8ee71a2)
  • perf(build): shrink native image with -Os + interpreter-only GraalPy (46e006d)
  • fix(build,ci): build native image on every commit for all platforms (793b1ba)
  • feat(self-docs): add per-page blurbs to vis_docs listing (767f0c9)
  • fix(loop): treat live thread interrupt as user cancel (#13) (aaae74f)
  • fix(gateway): converge auth-token rotation storm, graceful drain, DB-backed turn queue + auto-resume (c16a113)
  • chore(deps): bump com.blockether/svar 0.7.59 -> 0.7.60 (models.dev-backed catalog, slim overlays, canonical :resets-at-ms) (069da8f)
  • feat(gateway): multiplexed /v1/events — ONE SSE stream for many sessions (9594470)
  • perf(gateway/bus,repl-mgr): kill journal-scan churn + reap idle project REPLs (ee1109b)
  • feat(progress/web/tui): surface a live 'Vis is running: …' ticker for coarse activity (0e0280f)
  • fix(tui/shell): green the suite — resume duration bug + stale expectations (bccd7d2)
  • perf(client/gateway/bridge): cut TUI typing lag + idle CPU/alloc (605d663)
  • perf(gateway/bus): adaptive tailer poll to kill idle CPU burn (17357e9)
  • fix(gateway): reap orphaned event journals + JFR recordings; isolate draft store (9dddbc5)
  • feat(magit): colorize diff header filenames in TUI status view (1dc5830)
  • fix(language-clojure): resolve lint config from nearest .clj-kondo in nested projects (61f475f)
  • chore: wip changes to env_python, loop, prompt, compaction tests (c74adc1)
  • fix(gateway): unwedge stalled turns, drain queue, sync fs confinement (3ff2d07)
  • docs(todo): rename gateway command to vis gateway start and refresh status (2144797)
  • style: format sources with zprint (e15b9a3)
  • test(gateway): lock Tailscale preference for pairing QR (6660f83)
  • feat(sandbox): add pure-Python/JVM-bridge compat shims for the GraalPy sandbox (ce5af76)
  • chore(deps): bump tree-sitter-language-pack to 1.12.3-blockether.12 (96a4f2c)
  • release: update version files for v0.1.3, bump to next dev version (0768f7c)

com.blockether/vis-channel-telegram

  • perf(boxed-math): eliminate the remaining 127 boxed-math warnings project-wide (f918dc9)
  • perf(shims,shell,channel-web,channel-telegram): eliminate boxed math in cold render/format paths (489c0b6)
  • style: format channel sources (605ed16)
  • chore: sync workspace changes across core, extensions, and docs (9a68ff5)
  • perf(channel-tui,git): route footer git through gateway, drop dead client-side walks; sync cache TTL to poll (3e161cb)
  • fix(verify,reflection): make graal gate actually run + zero reflection warnings (001c99f)

com.blockether/vis-channel-tui

  • perf(channel-tui): defer whole-bubble clipboard formatting to click time (#24) (7840d0b)
  • refactor(editing)!: remove the ls tool — find_files/outline/rg supersede it (7aeef72)
  • fix(channel-tui): stop streaming FULL-frame spin from :scroll identity churn (bd0c5c5)
  • fix(transcript): keep bottom code-bg padding on expanded paste disclosure (ed37efd)
  • fix(tui): compact provider limit footer resets (c80cf07)
  • feat(context): surface reclaimed tokens + live utilization in fold readouts (65cffcf)
  • refactor(channel-tui): move box rule builders to lanterna (600386a)
  • refactor(channel-tui): reuse lanterna clamp and clear table boxed math (afd5ae5)
  • fix(channel-tui): remove duplicate queued prompt echo (e549552)
  • fix(tui): improve project picker selection (3123670)
  • refactor(channel-tui): hoist canonical ^long clamp into primitives, dedup call sites (98d4e62)
  • fix(channel-tui): eliminate all boxed-math warnings across the TUI (2697ef5)
  • test: repair stale UI and editing contracts (8bf435e)
  • feat(editing): strip echo diffs from python_execution stdout for patch/write/struct_patch (571b199)
  • perf(channel-tui): eliminate boxed-math in render pipeline (9c09375)
  • fix(channel-tui): keep a send-during-cancel in the editor, never queued (c6227d9)
  • perf(tui): primitive-hint components.clj justify-line/justify-segs (507d832)
  • perf(tui): long-hint provider.clj copilot dialogs + card painters (0bbd7de)
  • refactor(channel-tui): delegate ANSI fold/slice to lanterna 3.1.5-vis.26 (48b24ac)
  • perf(tui): primitive-hint provider.clj + dialogs.clj leaf layout helpers (c05d7be)
  • chore: update python shims, docs, and tui channel (5444a1f)
  • perf(tui): primitive-hint dialog geometry producers to cut boxed math (e2ed742)
  • refactor(tui): collapse duplicate ellipsize into one lanterna-backed p/ellipsize (9082bf6)
  • perf(tui): move column measurement into lanterna fork (vis.24), delegate primitives (ea6d17d)
  • perf(tui): primitive-hint render.clj input/geometry leaf helpers (296c13c)
  • perf(tui): primitive-hint dialogs.clj leaf layout helpers to cut boxed math (45da5d1)
  • fix(graal): add type hints to silence reflective calls + advertise sandbox shims (4d17b60)
  • feat(compaction): merge fold ledger into utilization as one-line readout (c35868e)
  • feat(python-extensions): author LLM providers from Python (e370650)
  • feat(env-python): guard against GraalVM/Truffle version mismatch on --jvm (9aaf179)
  • chore: sync workspace changes across core, extensions, and docs (e410b35)
  • perf(channel-tui,git): route footer git through gateway, drop dead client-side walks; sync cache TTL to poll (3e161cb)
  • fix(verify,reflection): make graal gate actually run + zero reflection warnings (001c99f)
  • fix(loop): treat post-refresh 401 as propagation lag, not dead credential (473c0f9)
  • fix(clojure): self-heal nrepl eviction and gate test runner on repl liveness (8ee71a2)
  • perf(channel-tui): throttle render-loop scroll-ease to stop streaming CPU spin (1bffb7e)
  • perf(channel-tui): input-text fast path + phase-tagged slow-frame logs (fc73837)
  • feat(self-docs): add per-page blurbs to vis_docs listing (767f0c9)
  • fix(gateway): converge auth-token rotation storm, graceful drain, DB-backed turn queue + auto-resume (c16a113)
  • feat(gateway): multiplexed /v1/events — ONE SSE stream for many sessions (9594470)
  • feat(progress/web/tui): surface a live 'Vis is running: …' ticker for coarse activity (0e0280f)
  • fix(tui/render-test): assert the real coalesced flush contract (0de6e6a)
  • fix(tui/shell): green the suite — resume duration bug + stale expectations (bccd7d2)
  • perf(client/gateway/bridge): cut TUI typing lag + idle CPU/alloc (605d663)
  • feat(magit): colorize diff header filenames in TUI status view (1dc5830)
  • fix(gateway): unwedge stalled turns, drain queue, sync fs confinement (3ff2d07)
  • fix(channel-tui): single space before footer chord hint (5cd3685)
  • style: format sources with zprint (e15b9a3)
  • feat(sandbox): add pure-Python/JVM-bridge compat shims for the GraalPy sandbox (ce5af76)

com.blockether/vis-channel-web

  • perf(shims,shell,channel-web,channel-telegram): eliminate boxed math in cold render/format paths (489c0b6)
  • feat(context): surface reclaimed tokens + live utilization in fold readouts (65cffcf)
  • style: format channel sources (605ed16)
  • fix(graal): add type hints to silence reflective calls + advertise sandbox shims (4d17b60)
  • feat(python-extensions): author LLM providers from Python (e370650)
  • chore: sync workspace changes across core, extensions, and docs (e410b35)
  • perf(channel-tui,git): route footer git through gateway, drop dead client-side walks; sync cache TTL to poll (3e161cb)
  • fix(verify,reflection): make graal gate actually run + zero reflection warnings (001c99f)
  • fix(loop): treat live thread interrupt as user cancel (#13) (aaae74f)
  • fix(gateway): converge auth-token rotation storm, graceful drain, DB-backed turn queue + auto-resume (c16a113)
  • feat(progress/web/tui): surface a live 'Vis is running: …' ticker for coarse activity (0e0280f)
  • fix(tui/shell): green the suite — resume duration bug + stale expectations (bccd7d2)
  • perf(client/gateway/bridge): cut TUI typing lag + idle CPU/alloc (605d663)
  • fix(gateway): unwedge stalled turns, drain queue, sync fs confinement (3ff2d07)
  • style: format sources with zprint (e15b9a3)
  • feat(sandbox): add pure-Python/JVM-bridge compat shims for the GraalPy sandbox (ce5af76)

com.blockether/vis-foundation-bridge

  • docs(prompt): enforce full-output access + python/shell narrowing across shell, mcp, bridge fragments (990d9bc)
  • perf(boxed-math): eliminate the remaining 127 boxed-math warnings project-wide (f918dc9)
  • perf(channel-tui,git): route footer git through gateway, drop dead client-side walks; sync cache TTL to poll (3e161cb)
  • fix(verify,reflection): make graal gate actually run + zero reflection warnings (001c99f)
  • perf(client/gateway/bridge): cut TUI typing lag + idle CPU/alloc (605d663)

com.blockether/vis-foundation-harness

  • perf(boxed-math): eliminate the remaining 127 boxed-math warnings project-wide (f918dc9)

com.blockether/vis-foundation-mcp

  • docs(prompt): enforce full-output access + python/shell narrowing across shell, mcp, bridge fragments (990d9bc)
  • perf(boxed-math): eliminate the remaining 127 boxed-math warnings project-wide (f918dc9)
  • fix(verify,reflection): make graal gate actually run + zero reflection warnings (001c99f)

com.blockether/vis-foundation-search

  • perf(boxed-math): coerce primitive leaves in shim-pil, format, foundation-search, file-picker (44b68ad)

com.blockether/vis-foundation-voice

  • perf(boxed-math): eliminate the remaining 127 boxed-math warnings project-wide (f918dc9)
  • perf(boxed-math): primitive leaves in asr, persistance-sqlite, shim-sqlite3, attachments (15d48cc)
  • perf(channel-tui,git): route footer git through gateway, drop dead client-side walks; sync cache TTL to poll (3e161cb)
  • fix(verify,reflection): make graal gate actually run + zero reflection warnings (001c99f)

com.blockether/vis-language-clojure

  • fix(language-surface): park run_tests outside the 30s native tool wall (60d096f)
  • perf(boxed-math): eliminate the remaining 127 boxed-math warnings project-wide (f918dc9)
  • fix(language-clojure): :only matches fully-qualified var names and errors on no-match (1b897c6)
  • refactor(loop,extension): park the native tool wall during slow setup instead of startup budgets (7cd3e3e)
  • fix(loop,gateway,language-surface): boxed-math cleanup + startup-aware native tool timeouts (8fee45a)
  • fix(tui): compact provider limit footer resets (c80cf07)
  • feat(context): surface reclaimed tokens + live utilization in fold readouts (65cffcf)
  • fix(clojure): autostart repl_eval with stale id and dir (212a660)
  • feat(python-extensions): author LLM providers from Python (e370650)
  • feat(env-python): guard against GraalVM/Truffle version mismatch on --jvm (9aaf179)
  • chore: sync workspace changes across core, extensions, and docs (e410b35)
  • perf(channel-tui,git): route footer git through gateway, drop dead client-side walks; sync cache TTL to poll (3e161cb)
  • fix(verify,reflection): make graal gate actually run + zero reflection warnings (001c99f)
  • fix(clojure): self-heal nrepl eviction and gate test runner on repl liveness (8ee71a2)
  • feat(self-docs): add per-page blurbs to vis_docs listing (767f0c9)
  • fix(gateway): converge auth-token rotation storm, graceful drain, DB-backed turn queue + auto-resume (c16a113)
  • perf(gateway/bus,repl-mgr): kill journal-scan churn + reap idle project REPLs (ee1109b)
  • fix(language-clojure): resolve lint config from nearest .clj-kondo in nested projects (61f475f)
  • fix(gateway): unwedge stalled turns, drain queue, sync fs confinement (3ff2d07)
  • fix(clojure): treat "default" repl id as sentinel (a867ae4)
  • style: format sources with zprint (e15b9a3)

com.blockether/vis-language-python

  • feat(language-python): run_tests handler with graalpy (default) + project pytest backends (2d4b667)

com.blockether/vis-language-typescript-bun

  • perf(boxed-math): eliminate the remaining 127 boxed-math warnings project-wide (f918dc9)

com.blockether/vis-persistance-sqlite

  • fix(persist,ctx): keep realized non-lazy seqs in error :data instead of the {:vis/ref :expr} sentinel (d3c6ed7)
  • perf(boxed-math): primitive leaves in asr, persistance-sqlite, shim-sqlite3, attachments (15d48cc)
  • style: format channel sources (605ed16)
  • refactor(sqlite): squash migrations V1..V10 into a single consolidated V1__schema.sql (c089801)
  • chore: sync workspace changes across core, extensions, and docs (9a68ff5)
  • feat(python-extensions): author LLM providers from Python (e370650)
  • feat(env-python): guard against GraalVM/Truffle version mismatch on --jvm (9aaf179)
  • chore: sync workspace changes across core, extensions, and docs (e410b35)
  • perf(channel-tui,git): route footer git through gateway, drop dead client-side walks; sync cache TTL to poll (3e161cb)
  • fix(gateway): converge auth-token rotation storm, graceful drain, DB-backed turn queue + auto-resume (c16a113)
  • fix(gateway): unwedge stalled turns, drain queue, sync fs confinement (3ff2d07)
  • feat(sandbox): add pure-Python/JVM-bridge compat shims for the GraalPy sandbox (ce5af76)

com.blockether/vis-provider-anthropic

  • perf(boxed-math): eliminate the remaining 127 boxed-math warnings project-wide (f918dc9)
  • feat(context): surface reclaimed tokens + live utilization in fold readouts (65cffcf)
  • fix(verify,reflection): make graal gate actually run + zero reflection warnings (001c99f)

com.blockether/vis-provider-github-copilot

  • perf(boxed-math): eliminate the remaining 127 boxed-math warnings project-wide (f918dc9)
  • fix(provider-github-copilot): subtract refresh margin on the refresh_in mint branch (#21) (8334a21)
  • fix(copilot): honor refresh_in to stop the 401 'IDE token expired' storm (#16) (39635a8)

com.blockether/vis-provider-openai-codex

  • perf(boxed-math): eliminate the remaining 127 boxed-math warnings project-wide (f918dc9)
  • feat(context): surface reclaimed tokens + live utilization in fold readouts (65cffcf)
  • fix(gateway): converge auth-token rotation storm, graceful drain, DB-backed turn queue + auto-resume (c16a113)
  • fix(openai-codex): retry quota fetch after oauth rotation (3bac799)
  • fix(openai-codex): honor explicit quota window duration (f64a175)

com.blockether/vis-provider-zai

  • perf(boxed-math): eliminate the remaining 127 boxed-math warnings project-wide (f918dc9)

Full Changelog: v0.1.3...v0.1.4