Skip to content

v2.1.2

Latest

Choose a tag to compare

@github-actions github-actions released this 06 Sep 09:20

Commits

300 commits:

  • 78878dae chore(release): bump version to 2.1.2
  • df25fa44 test(integration): /goal set defaults to manual autonomy
  • 6f50b0af fix(video_gen): inline file:// and artifact references for input_image
  • 9acb5316 docs: describe the tool media policy in the custom-modules guide
  • c913c274 feat(frontend): honour the tool media policy and file references in previews
  • a8aa0d99 feat(read): reference images in place instead of persisting a copy
  • b8df9a53 feat(api): serve raw workspace files for file:// media previews
  • 04dcddf2 feat(llm): inline file:// media references at the provider boundary
  • ed3bd514 feat(tool): let tools declare a media policy for their results
  • c6aae282 fix(attach): drop duplicated drive keys from the stream metadata whitelist
  • d544c36b fix(web): no creatures tab, count, or glow for a solo session
  • 20efe3f0 feat(web): drives and creatures in the default layout
  • 8c1583b7 feat(web): distinct panel names, hidden legacy aliases, picker descriptions
  • d8e7f175 feat(api): start and stop a creature in place
  • 6a1db04a feat(cli,tui): create goals and walk creatures inside the drive panels
  • b085268e feat(web): reachable drives panel, per-creature groups, goal form
  • 5b564785 fix(web): keep a saved layout preset and switch presets on the visible tab
  • 01a9a71e feat(ui): mark drive-triggered turns in every transcript
  • adc5ea67 fix(goal): manual default, graph-wide list, resume that wakes
  • 0241ff22 fix(drive): pause a drive when the user interrupts its turn
  • 99be04e2 fix(drive): heal stale transactions instead of poisoning the connection
  • da051c03 test: run the release-meta test on Linux and macOS only
  • 1953edeb fix: preserve tool history across interrupt and edit reruns
  • 8139b048 fix(test): run the release-meta step with this interpreter on PATH
  • 9272ad09 fix(ci): stop release notes inventing contributors, and re-anchor nightlies
  • 1229aa72 ci: make release the only workflow that builds or publishes
  • 66dce330 fix(test): probe daemon liveness without signalling it on Windows
  • 58ddb565 docs: describe the gated prompt system and the comment-density hook
  • 32e29430 feat(prompt): gate every framework section and tier tool documentation
  • 5533eac7 test: stop the real-config guard failing when a KT daemon is running
  • fc0e4bf8 refactor(tools): move json_read / json_write out to examples
  • 785e66a6 fix(packages): make kt update work for marketplace-installed packages
  • 692acd51 feat(llm): add gpt-6-astra, context-window variants, and fix default @vars
  • 5fa494f6 ci(nightly): derive the version from pyproject and publish to PyPI
  • 442bdefc fix(chat): supersede the pending lookahead on a scroll-triggered expansion
  • c8225965 fix(chat): anchor history-expansion compensation to a live message element
  • 816fc961 fix(chat): fence history-expansion continuations after dispose or scope switch
  • 740ec873 fix(launcher): run the first-launch splash on the main thread
  • d201eabe fix(cli_rich): persist provider-qualified default model
  • 656cc83a fix(frontend): allow built-in presets to be set as default
  • 010cf121 fix(api): resolve default-model requests to provider/name
  • c28c4b6c perf(chat): auto-expand history on continuous upward scroll
  • c80a8edc test(chat): split long-session panel coverage
  • 59a9ae78 fix(chat): preserve pending message jumps
  • a8cf2076 fix(tools): harden Codex subscription search
  • 898f0a22 fix(chat): restore reachable long-session history
  • ff4d25a8 feat(tools): add Codex subscription web search
  • fd8b83e2 fix(chat): preserve message bubble sizing
  • c6632680 perf(chat): reduce long-session dashboard stalls
  • 1381c27b fix(logging): keep KTLogger._log substitutable for Logger._log
  • 924868b6 feat(logging): type structured fields on KTLogger level methods
  • 69da1f49 fix(logging): copy caller-supplied extra instead of mutating it
  • 575ccccf fix(llm): detect installed Grok CLI version
  • 36a04768 fix(subagent): bound tool output before model injection
  • 37c2f988 perf(chat): coalesce streaming scroll updates
  • cf134389 perf(markdown): defer highlighting open fences
  • 8f99d366 perf(chat): linearize history replay
  • d4aea897 fix(ui): close remaining attention lifecycle gaps
  • 5a0af9fd perf(frontend): lazy-render full reasoning text
  • b56e5410 fix(ui): clarify desktop attention capabilities
  • 1a47cf46 fix(ui): organize attention preferences
  • 15209521 fix(frontend): preserve reasoning disclosure marker
  • 05adb5b9 style(frontend): format reasoning preview changes
  • 3aa7851b fix(frontend): preview reasoning in collapsed rows
  • bdfe3b71 fix(ui): close attention lifecycle gaps
  • ea7b61a7 fix(ui): satisfy attention CI guards
  • c54bc1cf feat(ui): add opt-in external attention channels
  • c8d84371 feat(ui): add cross-surface attention indicators
  • 29766c3d fix(session): skip tool feedback during metadata backfill
  • 94aaa63c chore(release): bump version to 2.1.1
  • 967c7962 fix(frontend): open external links outside the desktop shell
  • 8c963920 test(packaging): read pyproject.toml as UTF-8
  • 260bc507 feat(ci): auto-cut a patch release when stable falls behind
  • 0299a1d7 feat(ci): publish release notes as a plain commit list
  • 7b9f0025 fix(ci): build desktop bundles against the wheel from the same run
  • c3f6da2c feat(sessions): surface sub-agent conversations across trace events
  • 2a55f56c fix(triggers): converge trigger snapshot before cancellable teardown
  • f663c44b fix(triggers): persist resumable-trigger snapshot on removal
  • 446381ff fix(session): preserve tool pairs during edit replay
  • fb54dd56 fix(llm): refresh GLM Coding Plan model catalog
  • 3baca4b6 refactor(terrarium): split engine_cli TUI helpers below size cap
  • 84761d91 fix(sessions): select ambiguous sub-agent conversations
  • cd82389c fix(desktop): restore native window icons
  • 4352d02c fix(status): limit config identity to local sessions
  • 6c86fcff chore(ci): remove stale import allowlist entry
  • c5070fc5 perf(agent): reuse package metadata during builds
  • bfa41208 perf(desktop): overlap backend and window startup
  • 42f10a6d perf(cli): defer terminal runtime imports
  • c41d1ba8 perf(web): defer runtime-only application imports
  • c3e60db1 perf(desktop): show loading shell before server startup
  • 9e617c56 perf(startup): defer public and CLI imports
  • b41f5536 perf(startup): add opt-in startup tracing
  • 73b6d89e fix(sessions): retarget sub-agent persistence on rename
  • 5574192d fix(sessions): open exact sub-agent conversations
  • f0bc13b0 refactor(studio): extract remote roster metadata
  • ace23816 fix(status): preserve creature config identity
  • f979e90e fix(options): reject non-finite numeric limits
  • f22c716d fix(frontend): avoid false default model failure
  • 54bbc7c8 fix(budget): preserve system message ordering
  • e564a3d4 fix(llm): disable image generation for Codex Spark
  • 75a72dd0 feat(llm): add Codex Spark subscription preset
  • 5ac63f79 test: compare inline attachment paths structurally
  • e6e13220 fix: retain inline attachments for live sessions
  • f0606976 fix: trust controller-owned inline attachments
  • fbbd0371 fix: surface background tool failures to models
  • 4b441900 fix(desktop): upgrade pywebview to 6.2.1
  • 47776f66 fix(grok): resolve attached images from agent history
  • bb69b6c5 test(grok): cover subscription backend workflows
  • 1c88d6d7 fix(grok): normalize image inputs for video
  • 6b053685 fix(grok): refresh CLI credentials before expiry
  • 9b3aeb77 fix(grok): harden subscription media integration
  • 4a5a2c76 feat(grok): add subscription media support
  • 1053ca23 fix(tui): show horizontal markdown scrollbars
  • e4952f15 fix(tui): show complete safe tool arguments
  • fd90a836 test(ui): pin hint tooltip box sizing
  • b7f5fce3 fix(ui): wrap long hint tooltips within viewport
  • 466c0dd1 fix(compact): honor yaml controls and clarify eager trigger
  • ddecdc50 fix(ui): escape dynamic markup fragments
  • be8fe03b fix(cli): preserve foreign shim files
  • b51944d8 fix(launcher): lock a stable update anchor
  • e22cf18d fix(cli): configure UTF-8 at startup
  • b572ddaf fix(cli): hide interactive API key input
  • 8c45da23 fix(read): guard paths before type dispatch
  • e5a6be8c fix(frontend): cache model switcher inventory
  • a102aeb9 fix(tui): settle modal waits during shutdown
  • 5c4cf958 fix(android): ignore callbacks after activity destroy
  • de9c328a fix(cli): report resume outcomes accurately
  • 92ed5ccb fix(cli): preserve serve restart lifecycle
  • da180693 fix(tui): target running jobs by content row
  • ed8cfd34 fix(bash): clean output files on spawn failure
  • fc2027ca test(write): skip POSIX mode assertion on Windows
  • 3b91f091 fix(bash): clean complete raw output files
  • 91b86d19 fix(write): replace files atomically
  • d3897056 fix(cli): reject conflicting session flags
  • 9cabefb9 fix(cli): coerce heartbeat intervals as floats
  • 81a72dc7 fix(cli): reject empty host token files
  • 155198a9 test(android): keep release policy tables aligned
  • d814cfe4 fix(android): align version code with release version
  • aaf1e18e fix(frontend): address reading size review feedback
  • 7c539514 feat(frontend): add reading size controls
  • 9b84ff2d fix(frontend): improve subagent input contrast
  • c1b2fb28 fix(trace): page long-session turns
  • d6f68c10 fix(prompt): clarify background task continuation
  • a062d137 perf(frontend): separate timeline geometry from metadata
  • bc63b0f1 fix(trace): preserve and classify tool failures
  • 8351ba63 fix(frontend): ignore stale trace store loads
  • ff3670e7 test(controller): move registry import to module scope
  • 6798b562 perf(frontend): rasterize trace timeline rendering
  • 7d879374 perf(frontend): eliminate timeline hover style invalidation
  • da7aeac7 fix(subagents): require self-contained task context
  • d01e722f chore(release): bump version to 2.1.0
  • 299505bb feat(subagent): add user-level model defaults
  • cb62b8f6 fix(frontend): advance reasoning cursor across rounds without reasoning
  • 9863edc2 fix(frontend): keep multi-round chain-of-thought in arrival order
  • 5bffe175 fix(sessions): address review findings on trace timeline
  • 6932f967 fix(sessions): satisfy CI format guards for the trace timeline
  • 72968a45 style: black-format timeline viewer files
  • 95f3a416 feat(sessions): lane timeline with focus filtering, search, and virtualization in trace tab
  • 1f4f9dfe feat(sessions): expose ordered chain-of-thought in chat, trace, and inspector (#166)
  • 6f9dd699 fix(frontend): settle tool call status indicators on terminal (#164)
  • 1330f24b feat(plugins): add per-request tool catalog visibility contributions (#163)
  • 5078683b perf(session): make long-session persistence incremental (#161)
  • f80cd066 perf(frontend): fix long-session chat rendering degradation (#160)
  • 84f42cf5 feat: add configurable DeepSeek web search backend (#157)
  • 57b345f3 fix(bash): avoid serial lock head-of-line blocking (#155)
  • f4d8e7be fix(session): fix edit & rerun breaking history — restore turn metadata + branch-aware compaction (#112)
  • 08d389e1 fix: refresh CLI state from current runtime (#148)
  • 42087302 fix: isolate trace streams across view changes (#147)
  • 7ad27e94 fix: roll back failed creature startup (#146)
  • 9b9ffebf fix: enforce pwd guard for JSON tools (#145)
  • ba6290cd fix(tui): refresh live slash command hints (#144)
  • 3c1088d7 fix(cli): decode Kitty functional keys (#143)
  • 173b25d4 fix(compact): enforce a target live-zone budget (#142)
  • a7474885 fix(goal): let operator users manage creature-owned goals (#141)
  • bef1f9fe fix(drive): guide goal creation and assignee transitions in tool docs (#140)
  • a13c925d fix(cli): resolve virtualenv service scripts (#139)
  • 794a83b2 fix(tui): route history and clean up inputs (#138)
  • 59d0d303 fix(core): clean up executor task lifecycle (#137)
  • dfd9d968 fix(tools): initialize function tools (#136)
  • 879bc793 fix(subagent): attribute same-name tool results to their own calls (#131)
  • eac0b5ab fix(bash): keep bash tool independent from user login shell (#129)
  • d9c7e5bc Fix per-creature Rich CLI turn state (#127)
  • ad1bf0ec Fix dynamic TUI tab lifecycle (#126)
  • a458e000 fix(cli): preserve multi-creature output routing (#122)
  • 60e833fa fix(tui): make exit commands close the session (#121)
  • dff77ca0 fix(tui): render slash command results (#117)
  • 9d25c41f fix(terrarium): creature removal survives a closed drive repository (#114)
  • f33f00a0 fix(session): derive provider-safe tool name from job id on resume replay (#110)
  • 307da3a2 feat(core): persist model/plugin selections across resume (#106)
  • 53a2a33e fix(studio): self-heal stale closed session stores after graph merge (#108)
  • 9779c19e refactor(core): make tool-result elision a compact companion (#104)
  • 26afae26 fix: address runtime logging and input regressions (#102)
  • 18a155f5 fix(web): align slash interactions with chat UI (#95)
  • cf08e55f fix(frontend): remove stopped creatures from live views (#94)
  • 03c22c6a fix(session): preflight workspaces before resume (#92)
  • 5d429c22 feat(core): bridge global mcp_servers.yaml into creature config (#101)
  • 42fd7035 fix(core): make tool-output truncation/elision recoverable and context-aware (#99)
  • 5909b454 fix(utils): root-directory workspaces no longer block every path (#97)
  • 13a5e14c fix(terrarium): make recipe application atomic (#88)
  • bf074f9a fix(ci): restore MCP v1 and file-size compatibility (#93)
  • 37dab981 feat(studio): add open conversations rail (#91)
  • 041f1483 feat(web): add slash command and skill completion (#90)
  • c46e1409 fix(session): rerun from canonical uncompacted message history (#89)
  • 66b13a4e fix(terrarium): enforce graph-local routing identities (#87)
  • 224c8930 fix(ci): restore deterministic cross-platform unit tests (#86)
  • 710da4c1 add ws support for openai response api, fix preset gaps
  • 5db0146c fix python tool and bash tool issue
  • bdfb4c72 test(tui): settle-poll the drive-panel reload assertion
  • a5d3bb27 style(frontend): format chat.js
  • 00a9c50d refactor(terrarium): split runtime-option delegates out of multi_node_service
  • e04d8d1e test(terrarium): match the cancelled-stop stub to the stop(requested=) contract
  • 11ab7d79 fix(frontend): reconcile branch operations safely
  • 08e29695 fix(branching): align local and remote chat contracts
  • be7434e1 fix(terrarium): stabilize idle creature lifecycle
  • 61e2ca11 fix(core): drain deferred mid-turn events
  • 781586bf update CI/CD to avoid nightly flood
  • 16ae85ca resolve regression caused by new graph persistence design
  • e1b1a49e formatting and linting and dep graph resolution
  • 8578f340 style(python): normalize source formatting
  • 54087a88 fix(terrarium): refresh merge and split sessions
  • 37ced0a2 feat(terrarium): resume graphs from manifests
  • 72fae3b6 feat(terrarium): checkpoint graph mutations
  • 95a28dc8 feat(terrarium): add live graph manifest model
  • 19f59593 fix(lint): match dep-graph allowlist by function+target, not line
  • 9398392b redundant comment cleanup
  • f3b10b6b redundant comment cleanup
  • 1ae1a7e1 refactor(compact): remove the dead target config
  • ceb7adc0 feat(core): elide stale tool results from controller context
  • 9e332dae fix(frontend): route live frames to the root tab alias
  • b1a6bfe9 fix(terrarium): banner group_send deliveries and unmix wire frame coordinates
  • a4ea8fff fix(frontend): drop the static sub-agent roster from the creatures rail
  • 16e5a62a feat(persistence): serve live-session reads through the engine-attached store
  • 4eca18e9 fix(drive): open the legacy same-file probe immutable to protect live WAL state
  • 5921422d fix(frontend): reconcile queued chat and canonical history
  • 0bee039e feat(frontend): reuse the session viewer for live inspection
  • cc003c79 fix(cost): include whole-graph and sub-agent usage
  • bc8f311a feat(persistence): inspect live sessions through viewer routes
  • 4decb8e6 feat(subagent): support per-child model selection
  • 8879bbc9 feat(subagent): inspect and message live child runs
  • 2eab850d feat(identity): fetch live Codex usage and redeem reset credits
  • 36f9f979 fix(api): resolve creatures across clustered session graphs
  • 9e400965 feat(cli): resume sessions in the selected terminal surface
  • 18619c9d fix(attach): route UI replies to the prompting creature
  • 0caa062d fix(tools): avoid blocking without an interactive responder
  • e395b2a7 fix(executor): relax impossible manual-read gates
  • b6db48ea fix(session): preserve streamed text and cumulative usage
  • e76b7b5d feat(terrarium): add child spawning and warm lifecycle controls
  • 620a1cf0 feat(core): serialize agent events through one inbox
  • cfc4496c fix(terrarium): repair Drive split/merge lifecycle races (SQLite I/O + closed repo)
  • 94b7971d test(e2e): align journey expectations to Drive-default-on behavior
  • 3f44ae04 refactor(core,drive): keep agent.py and delivery.py under the file-size cap
  • bc919cc3 fix(terrarium): derive creature is_running from status, not the input-loop flag
  • 195d7d87 fix(ci): repair integration failures and raise macOS fd limit
  • 0dc070aa fix(drive): honor direct goals and user interrupts
  • b8191dff fix(drive): wake goals across runtime surfaces
  • cd72b630 fix(tests): align drive defaults and ids
  • db20a530 fix(drive): make goals and tools user-facing
  • fbd073d6 fix(drive): enable goals across product surfaces
  • a7c49f2e fix(tests): update compatibility warning coverage
  • df243e0e fix(imports): remove terrarium initialization cycles
  • 6d7cc5f7 feat(goal): enable goal plugin for terrarium creatures
  • 937aada3 docs(drive): document commitments and verification
  • 439e1a6b fix(presets): drop unsupported ultra reasoning alias
  • cb049c87 fix(session-index): close vault tables through supported APIs
  • 5421fc94 feat(lab): preserve drive errors across the wire
  • ace15649 fix(commands): preserve principal context for slash commands
  • fd9b49b8 feat(catalog): expose drive registration extensions
  • 09f0d966 feat(frontend): add drive workspace and settings UI
  • bb35d81c feat(cli): expose drive management surfaces
  • f8e532ed feat(goal): add drive-backed goal plugin and commands
  • 0652e47b feat(studio): manage drive settings and session records
  • f93c8fa9 feat(drive): route commitments across laboratory nodes
  • ca588428 feat(drive): integrate runtime with terrarium lifecycle
  • c49e4545 feat(drive): persist commitments with crash recovery
  • 864170fb feat(drive): define durable commitment contracts
  • 118d8234 fix(frontend): reconcile chat branches and background jobs
  • 6580e672 fix(resume): recover missing workdirs across local and remote hosts
  • f99f6a14 fix(session): make resume and topology recovery transactional
  • dd183032 fix(core): harden turn lifecycle and compaction
  • 656a0763 Update presets for new models such as gpt5.6
  • ca6d7313 feat(cli): show per-creature models in agent overlay
  • 25b0c24f fix(tui): target active tab for model and module actions
  • 38093aa6 fix(chat): scope model state to each creature tab
  • 8b33c616 fix(ui-prefs): debounce backend sync and prune null keys
  • 66bd91a3 fix CI issue
  • 45c939b8 fix CI issue
  • 7162559f fix(frontend): stabilize chat input and tab focus
  • f2c0c825 fix(session): prevent concurrent session writers
  • 9aa85273 feat(llm): support custom codex responses endpoints
  • 2cad7b1f fix(llm): inline local artifact image URLs
  • bc6de71c refactor(config): share env interpolation helper
  • 19a233b8 build: refresh pyproject packaging config
  • 32e4bd5f feat(cli): add terminal shims
  • a9c1c12e feat(cli): add standalone cli and tui front doors
  • 225ea9eb fix(api): mount studio router under api prefix
  • a98dd050 fix API broken issue
  • b8a3eca9 docs(zh-TW): update v2 API documentation
  • f967a4b2 docs(zh-CN): update v2 API documentation
  • 4176651c docs(internal): refresh subsystem README notes
  • 8499e085 docs(api): update English v2 API docs

(list truncated)