Skip to content

Releases: niq-run/niq

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 06 Sep 15:02

Changelog

  • 6ef2f28 feat(control): provider config management API
  • c29fce4 feat(project): {project} mount placeholder and upload_dir convention
  • 016dc9b feat(reason): persist tool-call tracker across restarts
  • 4470343 feat(reason): talk input attachments
  • 635df82 feat(templates): export projects as templates with an editable draft UI
  • 833f126 feat(webui): manage a workspace worker's mounts from its detail view
  • a490bcf feat(webui): model providers panel, unified view headers, lifecycle UX
  • ef6f4f3 feat(workspace): multi-mount boundary with approval flow and read-only mode
  • b10df78 fix(bus): detach stale HTTP worker connections so restart reconnects
  • f88723d fix(reason): meta tool dispatch carries the tool call id as RequestId
  • 86e214d fix(webui): add the rebuilt stylesheet the previous commit missed
  • 028d4de fix(webui): place talk blocks by one shared alignment rule
  • c77a1c9 style(webui): unify the accent colour on rgb(60,120,180)

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 05 Sep 06:39

Changelog

  • 0f8ef7f build(npm): ship a README in the main package; skip already-published versions
  • 1f375f3 build: installer wires niq into PATH automatically
  • ce76c4b 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
  • a5bfc06 chore(reason): batch streaming deltas every 1s
  • a6ef8fa chore(reason): remove TODO.md
  • 0698a5f chore(webui): update dist entry html for the rebuilt assets
  • 870df70 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
  • 33ddf63 docs(bus): document the registry API's omitted-allow-list default
  • 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
  • f159d47 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
  • 5f406e7 feat(bus): enforce publish ACL with target restriction
  • aaeb149 feat(config): move providers & templates under the shared common dir
  • ff5302f 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
  • 6b27c2c feat(events): per-worker traffic role filter; recipients normalized to a table
  • 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
  • 8bf1430 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
  • 6c5f9ee feat(reason): expose the provider.* domain to the worker's own LLM
  • c27708a feat(reason): extract Compactor as a replaceable compression strategy
  • 2a5ed81 feat(reason): fall back to the full reply payload when a tool result has no recognized field
  • 476f56a feat(reason): get_worker_info — the detail view behind the slimmed list_workers
  • 31fbd1f feat(reason): meta ops as their own event types; unify responses on request.* + Event.RequestId
  • 2f2eed5 feat(reason): program.query/program.update meta-extensions with durable programs
  • a8eecb2 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
  • 98b4cdc feat(webui): create workers from the workers view
  • 6b62d99 feat(webui): edit worker subscribe_allow against the bus registry
  • a0e3d13 feat(webui): gate oversized event payloads behind a hint
  • 4887114 feat(webui): launch declared-but-idle external workers from project.json
  • 5279b58 feat(webui): mention popup left-aligned, right check, exclude archived/suspended
  • 7e61338 feat(webui): persistent worker delete; fix external-worker lifecycle
  • d6b28ab feat(webui): query and switch a reason worker's provider over the bus
  • b07bc95 feat(webui): restart a running project, and a real loading state
  • f46f2f5 feat(webui): send events from a worker's watch contract with schema form
  • 75024de feat(webui): send worker events from its watch contract via schema form
  • 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
  • 18313b9 feat(webui): workers managed column, model switcher, allow-list tags
  • 550d978 feat(worker/reason): pass Compactor and BuiltinTools through the shell
  • 3028ab8 feat(workerhost): durable-change checkpointing; persist runtime provider switches
  • 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
  • 5dcdc11 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
  • 2058ad5 fix(discovery): restore worker.discover subscription for managed wo...
Read more

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 05 Sep 02:02

Changelog

  • 3e7825e build: installer wires niq into PATH automatically
  • c17ff02 chore(reason): batch streaming deltas every 1s
  • 5193657 docs(bus): document the registry API's omitted-allow-list default
  • f421bee feat(bus): enforce publish ACL with target restriction
  • 96508f4 feat(events): per-worker traffic role filter; recipients normalized to a table
  • 052f5a0 feat(reason): expose the provider.* domain to the worker's own LLM
  • 1bcf8b3 feat(reason): fall back to the full reply payload when a tool result has no recognized field
  • 017d5bb feat(reason): get_worker_info — the detail view behind the slimmed list_workers
  • c77cf7d feat(reason): program.query/program.update meta-extensions with durable programs
  • b522f22 feat(webui): persistent worker delete; fix external-worker lifecycle
  • ace03f9 feat(webui): send events from a worker's watch contract with schema form
  • 38d0187 feat(webui): send worker events from its watch contract via schema form
  • 6d3d461 feat(workerhost): durable-change checkpointing; persist runtime provider switches
  • f0bc005 fix(eventbus): apply sqlite pragmas via DSN so every pooled connection gets them
  • c486f7c fix(eventbus): deliver the watermark event on the live stream
  • f0f0892 fix(eventbus): set sqlite busy_timeout to stop silent event drops
  • 1cdaa47 fix(project): reason spec subscriptions are broadcast lifecycle only
  • 5d8978c fix(reason): subscribe the default worker to get_worker_info
  • 4c15bb3 perf(persist): store snapshots as raw JSON; slim list_workers results
  • 1584319 refactor(bus): remove the worker-side subscription declaration entirely
  • b9429a1 refactor(event): drop discriminator/arguments — event type + payload are the whole contract
  • 5f3ac0b refactor(event): unify grant JSON tags to target / source
  • b30f55a refactor(project): replace wildcard publish/subscribe defaults with explicit grants
  • b97b728 refactor(reason): subscriptions list only broadcast-delivered events
  • 10c08ad refactor(reason): swap append/schedule input_mode names to match semantics
  • 2e10af5 style(webui): unify worker delete button layout with the action buttons
  • 73cefba test(bus): lock the type-wildcard target-narrowing publish path; fix target spelling
  • 0d52ed8 webui: add en/zh i18n with language toggle and rebuild dist
  • 75faf38 webui: cap event history fetch and pagination at 30
  • 412528c webui: stop runaway top-loading in events list; add scroll-to-bottom button
  • 71f56e6 webui: unify fonts, collapsible code blocks, and worker selector polish

v0.1.1

Choose a tag to compare

@github-actions github-actions released this 02 Sep 03:19

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...
Read more