Releases
v0.1.1
Compare
Sorry, something went wrong.
No results found
Changelog
7a15446 build(npm): ship a README in the main package; skip already-published versions
c571a26 build: move publish-npm.sh into npm/ and add make npm-publish target
aea4e6d build: release pipeline with goreleaser, npm platform packages, and install.sh
30a520d chore(project): events dir is plural (events/), matching other dirs
d14a5fc chore(reason): remove TODO.md
2684e1f chore(webui): update dist entry html for the rebuilt assets
f1856b8 chore(webui): update dist entry html for the rebuilt assets
9310ed6 core/bus: define core protocol interfaces
9abdfab core/event: add Recipients field for delivery tracking
0d600bd docs(reason): align ToolProvider comment with BuiltinTools (own call-and-answer tools)
1c532f4 docs(reason): clarify BuiltinTools is the worker's own call-and-answer tools
1dc2f06 docs(reason): don't reference future upstream workers from a dependency
a4a3140 docs(reason): drop 'conversation' from comments/descriptions
7f4775d docs(reason): drop the 'shell' metaphor from comments
31a7abe docs(reason): fix package/comments after BaseReasonWorker extraction
54410ec docs(reason): fix stale comments after the refactor
43ea7cc docs(reason): relocate and rewrite README/TODO; inline tool-result helpers
96d07e6 docs(reason): replace 'domain-agnostic' with a defensible split
74d5029 docs(reason): treat the three input modes as a spectrum, not a default
aaeb149 feat(config): move providers & templates under the shared common dir
05a355f feat(config): subscriptions support source-restricted patterns
6f9dbe4 feat(control): fixed-port control plane with project start + SPA mode context
c396b55 feat(control,webui): create a new project from a template and start it
165508d feat(control,webui): template management panel; running detects manual CLI starts
a7a62a4 feat(eventbus): multi-worker filter, target_worker_id, deterministic order
09a5b15 feat(llm): support provider.json and additional LLM APIs
de9863e feat(project): consolidate sqlite event files under an event/ dir
42e3b17 feat(project): migrate legacy global swarm into a project
4fdad3c feat(project): persisted ports are authoritative — kill any holder
69f4bc2 feat(project): project definition store + project.json CLI
6d6b475 feat(project): reclaim a stale process and check ports on start
ebec9fa feat(project): run a project instance with its own bus, ports and data dirs
2021a80 feat(provider): configured models list is authoritative over API discovery
ec7f221 feat(providercfg,reason): multi-model providers + runtime LLM provider switching
642f9e1 feat(reason): align handleInput with all three input levels
01f9231 feat(reason): append a completion note after context compaction
de2dd76 feat(reason): cap oversized transcript payloads at 20KB
662e149 feat(reason): context builder — transcript projection, compaction, episodes, spawn seeding
c27708a feat(reason): extract Compactor as a replaceable compression strategy
92e0ddd feat(reason): meta ops as their own event types; unify responses on request.* + Event.RequestId
2570a32 feat(reason): retire tool.request — tools become their own event types
a442980 feat(reason): self-synchronized transcript with edit-buffered Apply
f76c172 feat(reason): unify meta operations (compress/rotate) via worker.update
e110e2b feat(swarm): launch and supervise unmanaged (external) workers
0c55c4e feat(swarm): print webui url to stdout and open it in the browser
4a5a91a feat(swarm): wire the SQLite event store per project
77311e6 feat(template): JSON project templates; default template auto-uses providers.json
a489cd7 feat(transport,webui): support dynamic (:0) port allocation
c4c1433 feat(webui): add favicon from the niq logo
319e116 feat(webui): archived workers sort last and show an archived status
e5e66b9 feat(webui): archiving a worker suspends it first; restore resumes it
83dc9e6 feat(webui): edit worker subscribe_allow against the bus registry
ff34c76 feat(webui): gate oversized event payloads behind a hint
89549b6 feat(webui): launch declared-but-idle external workers from project.json
5279b58 feat(webui): mention popup left-aligned, right check, exclude archived/suspended
04c5b78 feat(webui): query and switch a reason worker's provider over the bus
8879ae3 feat(webui): restart a running project, and a real loading state
32bd183 feat(webui): show current project name under the logo
4b29439 feat(webui): soft-wrap toggle for tool JSON + click-blank to collapse
0597953 feat(webui): start/create no longer redirect — stay on the Projects page
f5dab83 feat(webui): syntax-highlight the tool_call / tool_call_result JSON
56899d2 feat(webui): talk/events/workers UI overhaul
ee26094 feat(webui): trim the workers list — drop Action and Subscribe columns
04be219 feat(webui): workers managed column, model switcher, allow-list tags
550d978 feat(worker/reason): pass Compactor and BuiltinTools through the shell
1b03606 feat(workerhost,swarm): persisted-authoritative worker recovery
04e9f43 feat(workspace): bound bash tool output at 20KB head+tail
39f372c feat: bus-level source-filtered subscriptions, ReplyRejected, UUIDv7 event ids
381d23e feat: drop the tool name from request.* results; merge results into invocations
0f21c17 feat: flat project layout + archived workers
78e6320 feat: init
3d1df92 feat: template detail panel + per-project dated logs
e2354cb feat: worker lifecycle suspend/resume + persistence + WebUI worker view
7b9fb35 fix eventbus: wire EventLog via Engine.OnEvent so Send events reach SSE stream
5e364a8 fix(control): don't respawn a project that is already running
7341ccd fix(control,webui): real running state; Start/Stop/Jump by liveness, not stale ports
5519989 fix(eventbus): don't persist transient streaming deltas
1803446 fix(evtstore): order & paginate by insertion order (rowid/index), not timestamp
1acd828 fix(evtstore,webui): persist request_id; name tool invocations from their type
d694d9f fix(httptrans): check scanner.Err() after the SSE read loop
1dc5392 fix(llm): guarantee a tool_call_id on every tool call
54430c6 fix(preset): update default.json to the request.* event convention
6355abe fix(project): stop churning project.json on every start
64a3e9e fix(project): validate persisted ports (1-65535)
00f9536 fix(reason): DefaultConverter text branch keeps intended shape (no payload repeat)
d008020 fix(reason): drop tautological parked != nil check on late result
2467717 fix(reason): keep meta tool calls out of the transcript
77fe8c9 fix(reason): precise LLM error policy with event-driven 429 backoff
98e1306 fix(reason): restore tool-name reverse mapping for dotted tool dispatch
9f1470a fix(reason): retry transient provider errors; fix ContextLength retry
2f280e6 fix(reason): route ErrorContextLength compaction through worker.update; rename emitMetaRequest
e3062b9 fix(reason,timer,swarm): tool naming, unavailable-tool notice, timer cancel, hiw rename, webui banner
e4d5839 fix(swarm): reuse a project's persisted ports so they stop jumping
9639bf6 fix(swarm): use hyphenated default hiw id (default-hiw)
5315ea8 fix(swarm): workspace uses the declared worker id, not a path-derived one
990649c fix(template): clear superseded builtin YAML templates when seeding
069b996 fix(webui): Jump opens the project in a new tab
32e0699 fix(webui): Jump/create/start stay in the current dev origin
e8e15d1 fix(webui): apply the wrap toggle to the element too
5eced3644adac743514fef8480488f790eadab80 fix(webui): hide host suspend/resume tool calls from the talk stream
1433539315a371e2874bd57539844b2d0bcf2d42 fix(webui): keep immediate workers fetch for the talk mention dropdown
4cb3eac783e725b82dc941e493d3d818c69d484f fix(webui): keep the Talk header when there are no messages
4cd19058139d8144c00a4a98ab9e963250c4495a fix(webui): keep the talk viewport stable while paging older history
87495ecda9578d66b843e8efc17a7aebd724b99f fix(webui): map the frontend to the request.* event convention
5450687a1c0991fcc860faa893240eb3604ed4de fix(webui): no Start-button flash after starting a project
2abdce6069dd0c23fa28a229f131529abdb09dda fix(webui): no flash when switching to the talk view
b42b9cc00183b8b69159bd64f92621dc608be018 fix(webui): project name under logo missing in dev ?project mode
fb827e8374d3db7829c8af8790516cb309ee9139 fix(webui): rename the swarm-owned hiw to webui-hiw everywhere
832647966f8ff70da1eaffeedb979f956db9ee88 fix(webui): section dividers span edge-to-edge, content clips at talk divider
90305a3c1992961598ed9a5c2d578222dfe7a694 fix(webui): stop workers polling + SSE on the Projects surface
d9c35ddf64effec597c86c6a27c811e09faf64fd fix(webui): talk shows tool events only when a reason worker is a party
bf4bdd2f9a51f4363bb2a1851ef44ef1c7f6ad70 fix(webui): target picker keyboard nav, view-settings persistence, scroll + SSE races
2aced375172266b098c5e544d52d69b62cc9dced fix(webui): usePolling must re-run when enabled flips
132dea2ea4daeb04788b01b9b0770ece45db0e25 fix(webui): workers polling doesn't fetch on activation
c17ffc90b6b1ee2bf2dd4199d945fae5d7708f2d fix(webui): workers polling hits the project's own address; live project status
244a175e333662946389a4e3fa2c3fe053b60704 fix: Update IdentityRegistry interface to propagate worker type
333a091ba284fa13a951c693bd60e1ad7d21442e fix: add MemoryEventStore for hiw event history
566595c9ef51bd985881a6809e55ff8f11b0a50c fix: add Type field to Identity, fix WebUI workers endpoint
18d5e70ca17ae59b2f0607bdc4d50437d63de8da fix: gate unix-only process-group syscalls behind build tags
f66a9ad36ebe8dbe6e2a133e5bfbed6690c30f6a fix: handle duplicate identity registration on restart
bc0e0209f4ac0ab2ac36ce6f8f1741dc8de1d606 migrate all workers to WorkerSideChannel
4e4d74e99e513f1de53007e644f65eb75a62782d perf(evtstore): bare timestamp index for all-history pagination
8d9c3e83183f09af2ad867b73544dfa8a32416ca pkg/service/eventbus/transport/inprocess: align with 'ball and arrows' model
b4d8c4be7d9e1ac6b5a5476eb89d01d32af1e0ff pkg/service/eventbus: implement event bus engine, transports, and registry API
facbc0607cb6098dfc39f82a3c47e587f6f753a8 pkg/service/swarm: migrate to new eventbus
55353a924b18f1fc2f5b6f63759a733aa478d5b9 pkg/worker/reason: migrate to WorkerSideChannel
db4e7de76b4da8c96b461175598fa0c203a7ce7b pkg/worker/timer: migrate to WorkerSideChannel (experiment)
078a36bc685478841c56d02c1438575d0064aca1 reason: add worker identity & collaboration guidance to the system prompt
c12926987796d99372913a9b51dcd2b5cd31cbf1 reason: clarify transcript docs & naming; update README
015238bde5955197b4cea5edbbe0c674a6cb4fda reason: implement streaming interrupt preservation (TODO 1+2)
081f461d5909b05d0b004ce29497752df8ad1f23 reason: rename built-in tools to DefaultTools / bus-declared capabilities
6caf10015a1d104df7af3f115e77b4fa892f8ff0 reason: route self-tool declarations through the tool provider
057d234d3fcb47b01a576e08fe836ea45de502c1 refactor(build): unify SubscribeAllow — template-first, hardcoded defaults
bf523a6dc7f4db54a583c23c724c3aee84242440 refactor(config): JSON-only, drop YAML template support and migration cleanup
468ddd06b748fee4e09813d6c1a6f725b4cdf07a refactor(event): type universal bus protocol events as EventType
e54879afc56099adadde92baf3d36e0dcc3b09fb refactor(eventbus): mark transient events at the source instead of filtering by type in the bus
da06c002a0c3cf2f81da1f1affdf51c5d16f2d75 refactor(project): config.json is the authoritative worker config
66889087ed736bc9bb4357d1db6dbe38a727ec28 refactor(reason): actionable list_workers serialization error
2b24c5ec74f6ebd3662a8aabdcb7f41e03415702 refactor(reason): capability registry; feat(provider): context window + custom headers; feat(webui): mobile layout
0341dc6fb9dada74e4e62badc0b5de54c081fe4e refactor(reason): converge mechanism scope; compression becomes a worker-owned event convention
59df72f85d82930273aebb11817fd2b3276bb7b4 refactor(reason): decouple tool-call timeout from the timer worker
12d87d1d7dcd4d0656bf5d72c8e8a4fdb0066a86 refactor(reason): discover own tools from a self-directed worker.ready
bda883451de7c669643d75a42d192312610f0513 refactor(reason): extract baseworker + transcript/requesttracker subpackages, rename capabilities to extensions
98654c36a1c65bb477393f610200ab5d012bfd07 refactor(reason): extract common reasoning base into pkg/reason
615693dcd4a25000ba940ebe7af7d001d6dd1d98 refactor(reason): extract three-level input handling, consolidate parking, improve naming
be6ff51f7b811171dd94ac759fcd61eb799789df refactor(reason): fold transcript subpackage into main package; rename inputs to Patch
d926e2c25bc89c84e97c90ecaf78a3c617cdf167 refactor(reason): major reason worker restructure + message layer extraction
cbab3b8af25dd831f3806c7672fe22e6a397e5fd refactor(reason): merge compactor.go into compact.go
1ad337cfe0d869f4f043416c5ce85ca7c1cc0d9d refactor(reason): move cloneParams to the end of tools.go
161054f817d05501411e70fbee5ce386ef0ae991 refactor(reason): move llmToolDefs into tools.go
008a07fc8e0feef994646f648ad34d88cd1246d7 refactor(reason): persist provider selection; drop dead compactor/seed seams
e7b05db607ab90044bee3ec799ff286ec0f7b1ac refactor(reason): rename budget.go->compact.go, fix toolset/tools test naming
fb77e05b0cc6a067b79cc610ff6de055f55c4939 refactor(reason): rename compress built-in to context.compress
2bae60e6c6753a3df0472071a38b519d18ac2084 refactor(reason): rename context.close_episode to context.rotate
8ce28b74e10107aec1190703bea2b423dc80c57c refactor(reason): rename pkg/reason/base.go to worker.go
73675f32292c309422dcf37f6d1232060ee7b3d5 refactor(reason): rename recordUsage to handleBudget
feee7cabce6f3d476727ced67c44db500f907238 refactor(reason): rename snapshotMessages to renderTranscriptLocked
6ce74a9887f2a229133c8d124b7253f2b17160ee refactor(reason): split domain-agnostic BaseReasonWorker into pkg/reason
c5917474161341ce642290054f30d0dd1ae6565e refactor(reason): split reason() into focused helpers
db78b64fd4a1a20abaaf924ceb41115aa4a106b5 refactor(reason): split watch into watch (loop) and process (dispatch)
f854ff6589db7a91b00db31d7547f25a3e3cf555 refactor(reason): tool provider interface + private fields
80847c68a09638d6ad07a26a4d4703ce0b8d3480 refactor(reason): unambiguous tool naming via provider__name
81b732aec64fddf625f771411b725385acdf28e5 refactor(reason): when a meta op yields to pending input, drop it cleanly
23b5be8f13fc9986460688d3026844031e3609f5 refactor(swarm): consolidate LLM provider config into provider subpackage
0afc34ce4639bf042a192a59811b4a2bbeb20299 refactor(swarm): worker dir is truth; provider gate; drop legacy migrations
7782be3927960c2428b1a8167dd794150d98e57c refactor(transcript): buffer only input + late result during a meta edit
e5646188033ae65aff64557c9b65b985910df5f2 refactor(transcript): name files by ownership
e6525cd1688937f4bd2c69851a6d730012c4123e refactor(webui): remove decision.made machinery, converge human decisions into worker.input
19575076716e78b7540754d55eb3bed74cbe83a4 refactor(worker): solidify core tool-serving workers and add reason tests
f8d8e76f34741faf8c7f01ce21c845e3963af84d refactor(workerstore): persist worker snapshots as raw text, not base64
bd91da93c7c111a5472aa9d02dabda392e91506a refactor: move eventbus out of services — services are worker backends only
77c578282e63406d8e75782effdf1be1e075f78b refactor: move swarm and webui to internal/, simplify HIW to only SendInput
547cd7cded09fb9a6ec2fa82a5c7525d8bbd6903 refactor: normalize layout — workers/services under pkg/, ext keeps only http
6f19de30e2f2113e5e182668afbab802ab3db3a2 refactor: rename pkg/llmprovider to pkg/provider
ab8a85b0c9540ff7e1f266d07dcb1255860edcdb refactor: split internal/swarm into control + project packages, drop the legacy swarm mode
97c59fbcd0c1455264a59c99681964496cac9113 rename ToolCallCause → InterruptCause, use typed constants for interruptReason
80af5ec8d91b2dd0bf83dfa53dfcdf47ff16a9c5 restore TODO.md that was accidentally deleted, update to new constant names
9e2f656cd606e745c5ea1d3a7055808b722027ee style(webui): 2s-coalesced streaming; split invocation/result into two blocks
e444851c6546c13b9279ea0121b8460cf7b7b01b style(webui): breathing room in worker-detail actions
bfb2cdeced08d535920418ea336540613734c5bd style(webui): cap tool_call / tool_call_result height with scroll
c05c19b2e649495c34213ce1a4dc3db5ca29827c style(webui): faster, decelerating logo spring-back
52f53b41c84b534652dbb91fbe1f7c365a05397e style(webui): no hover background on the subscribe allow edit/close toggle
67b75114d0d5e9913630b5680944887e5a8ed8a1 style(webui): project name as plain text under the logo
5b742cd8ce62079ddf602098d2a0cf60a9bb7a23 style(webui): project name — remove italic
745b0f691151fdca194970abef32b187a01362bb style(webui): pull the logo flush to the text's left edge
58c28172d06f7c1e42333b58ad118be8a057f8df style(webui): refresh sidebar logo typography and add divider
f76a5bb9dab2fc8b1afc4cb6e1495059ce45dce6 style(webui): render subscribe_allow one per line in WorkerDetail
118f803ff5a27e4b1dc60e0bad24e17f00e8366b style(webui): show subscribe_allow in the editor layout, read-only
f19da34b4ad9894aa75b34a4d197db7cc70bb629 style(webui): source dropdown in SubscribeAllow editor, no read-only placeholders
ad85a76b600bf0a1ecd2285c832c160d082b8a91 style(webui): swap action descriptions above their buttons in WorkerDetail
66474648e672a0f59cc083c683aff105f875487d style(webui): swap favicon to the reverse niq logo
0d6e1f487845963db48635aadb15847d32a9c8d7 test(reason): consolidate worker/reason tests into a single file
1fcafb693a1aeb259e27d59e9500f309873c5509 test(reason): move handler tests to process_test, watch_test keeps integration
4f3bfe7c30579e2cf42756d05cd4cd3b081d1987 test(reason): rename message_test to process_test, drop duplicated EventPattern test
faca34a5e0faf07a110126a1ed5a3c4e8ac68819 test(reason): tidy helpers_test.go names and docs
bc34230cb510bdbf1a0b17e2237bf3fced5e9966 test(transcript): fix unconditionally-terminated loop in cut-alignment test
1f2f467eeecd5006202908a9806cbdbc4c2d0de5 webui tweaks: logo font/bold, detail block spacing, dev proxy→9527, logo assets
1877da7714c5ea6644838a3f52b84298d3f62615 webui: clip logo at divider, unify divider width, drop error from tool title
19b2b3e7fff1e2d3c67c5bd06e5cfa5900faca88 webui: polish talk/event views and fix streaming trace loss
10d11e90db449c398c2b53fbc4fc555c5d1436b9 webui: rebuild talk timeline via watermark + history pagination
You can’t perform that action at this time.