Repository navigation
Releases
Releases · gritzapp/gritz
v4.4.0
4.4.0 (2026-11-07)
Features
- apiauth: require a bearer token on the custom event webhook (47afc2a)
- apiserver: add custom event type RPCs (1377cfb)
- apiserver: validate routing rules against org custom event types (9ea23e6)
- cmpx: add OnlyProtoFields (5ae5a1b)
- customserver: add custom event ingestion endpoint (cfff179)
- eventrouter: validate custom event types (c39a853)
- store: store org custom event types (3e1e5e9)
- webui: add custom event schemas tab (2447913)
- webui: add dark mode with light/dark/system theme toggle (e92948d)
- webui: describe custom event attrs by their help text (bc88bf4)
- webui: describe every field of the custom event JSON Schema (4b11d96)
- webui: drop the type value from its JSON Schema description (1aedd32)
- webui: show a Dynatrace icon for Dynatrace links and events (04e6d73)
- webui: show a JSON Schema per custom event type (5932ff7)
- webui: show custom event webhook URL and example payload (e7e487f)
Bug Fixes
- runner: stop the local driver's reaper removing its successor's pid file (a777ec6)
- webui: collapse nav labels to icons below lg so the bar fits on one row (8c52fe0)
Miscellaneous
- apiauth: rename RequireBearer to RequireBearerAuth (1ef2d93)
- api: move the custom webhook URL to org settings (51c5a85)
- apiserver: name GetEventTypes registry (14bb0ea)
- customserver: add NewWebhookRequest for submitting envelopes (52f5c74)
- customserver: inline webhook handler test fixtures (ca9695f)
- customserver: look up custom types through the schema registry (17e01d6)
- customserver: unexport toInputEvent (79b911e)
- driverclient: read the first request in stub Run handlers (5fbe2d8)
- e2e: assert custom event outcome with whole-value compares (9d46862)
- e2e: compare whole events in event, lifecycle and link tests (75718f6)
- e2e: compare whole runner events in TestListRunnerEvents (f3d955b)
- e2e: compare whole schedules and test-event responses (21d17ad)
- e2e: compare whole tasks in task, runner, shell and wake tests (cf5f716)
- e2e: compare whole values in log, org, key and token tests (6adec7b)
- e2e: inline custom event type in-use arrange (aafc112)
- e2e: keep the id-assigned checks in TestCreateOrg and TestCreateKey (28fc5e2)
- e2e: post custom events through a harness webhook helper (1c860ea)
- e2e: project narrow task tests onto the fields they check (1fc6c47)
- e2e: project schedule and task compares to the fields under test (c6db0bd)
- e2e: project task snapshots onto the state they drive (751b53a)
- e2e: project the cancelled task to id and status (e8a064d)
- e2e: split custom event type in-use tests (f8e5472)
- eventrouter: inline custom event type fixtures (3e77a80)
- eventrouter: move event type schemas to model (9eebb2f)
- eventrouter: rename customNamePattern to customNameRe (55f121c)
- eventrouter: rename customNameRe to reCustomName (c9e5af7)
- move custom external events proposal to implemented (b4ee32d)
- server: inject customserver like the other integrations (4d39bd3)
- server: register the custom webhook only when configured (9ac7327)
- webui: drop nested bordered boxes from the rule and event type forms (ff013c8)
- webui: format routing-rules.ts (78f340a)
- webui: remove the legacy event type option from routing rules (e541062)
- webui: rewrap external source comment (08414a2)
- webui: run the Prettier check as part of pnpm lint (edad768)
- webui: use a grid for custom event type attributes (082e8b7)
- webui: use useTernaryDarkMode from usehooks-ts for the theme (5b77cf5)
v4.3.0
4.3.0 (2026-11-06)
Features
- atlassian: route Jira issue assignment events (3859f3c)
Bug Fixes
- apiauth: reject token_type JWTs in VerifyAppToken (1906617)
- atlassian: reject webhooks to archived orgs instead of clearing their secret (59d7df6)
- auth: reject API keys of archived orgs (1985c6f)
- oauthflow: resolve the org on refresh token grant (34ea186)
- org: refuse DeleteOrg while the org has unarchived tasks (2dd1740)
- org: tear down an org's work when it is deleted (af12946)
Miscellaneous
- atlassian: return webhook actor meta from toInputEvents (1acf115)
- e2e: bind the harness server's URL with an unstarted test server (d444cf4)
- e2e: deliver Atlassian webhooks through an h.Atlassian handle (ea2feeb)
- e2e: replace h.Atlassian with an AtlassianWebhook wrapper (e72c82e)
- e2e: send a typed payload through AtlassianWebhook.Send (cac677f)
- e2e: split DeleteOrg teardown test into one test per outcome (9a6eeb2)
- org: check for unarchived tasks with an EXISTS query (3d3cd43)
v4.2.3
v4.2.2
v4.2.1
v4.2.0
v4.1.0
v4.0.1
v4.0.0
4.0.0 (2026-11-02)
⚠ BREAKING CHANGES
- api: a ListEventsByTask request without page_size or page_token returns only the newest page (default 50 events) instead of the whole stream. Clients that need every event must page.
Features
- agent: add the puppet agent (60958e7)
- carry the task's workspace in command events (bfe62d4)
- diagrams: add playback controls to the published diagram pages (ad661e7)
- docker: speak h2c to the driver server (0ad0fdd)
- firefox-ext: add Firefox extension to start tasks from GitHub code view (0eb5680)
- gritzclient: add a ListRunnerEvents page walker (c1c2e67)
- lambdamicrovm: force HTTP/2 to the driver through the proxy (046a717)
- lambdamicrovm: run an image script on the validate hook (a690f14)
- runner: add RunLoop and drive (d01f6f7)
- runner: add the local sandbox backend (541374d)
- runner: driver acts on commands (c42f9ed)
- runner: driver event file and bidi Run stream (9c4d73e)
- runner: keep runner events in runnerstore (bee778e)
- runner: keep sandbox records in runnerstore (872dfe0)
- runner: render the agent prompt from the event file (c90faad)
- runner: replace Poll with a follower per task (677a80d)
- runner: replicate the runner's event log alongside the TaskManager (7e424c9)
- runnerstore: add the runner's SQLite event replica store (ef4ba26)
- runnerstore: project task archive state into a tasks table (6061408)
- store: record the inserting transaction's xid on events (40ded65)
- store: write a command event whenever a task's command changes (8e5f7f5)
- taskevents: replicate the runner's event log into per-task streams (0f4234b)
Bug Fixes
- server: write a command event when a pending start moves to the next run (2a63f71)
- sqlite: set busy_timeout before the other pragmas (fde03b5)
Miscellaneous
- add CodeView and stepper for motion canvas code walkthroughs (0c63300)
- add Go style guidance on slice pre-allocation (39964e1)
- add motion canvas diagram of the runner event replica (52cba18)
- agent: move the puppet into its own package with a server side (55fa062)
- api: drop the unpaged ListEventsByTask path (861cb5e)
- apiserver: archive the draft directly in the archived gating tests (584f9c1)
- apiserver: convert runner events with model.ProtoMap (51ee084)
- apiserver: format each authscope.New argument on its own line (760db6d)
- apiserver: format each scope on its own line in archived gating tests (5db06c8)
- apiserver: inline createCtx (162797b)
- apiserver: port taskscope tests onto the e2e harness (1a2af94)
- apiserver: port the remaining apiserver tests onto the e2e harness (7e7974f)
- apiserver: snapshot the task with Clone before command changes (07fdb87)
- break long struct literals across lines (9856278)
- diagrams: ignore motion canvas meta files (abf42c3)
- document step pauses and link waypoints in the motioncanvas skill (8a1cb45)
- driverserver: check TestRun_Restart's dials once the run is idle (f236287)
- driverserver: replace driver path options with PrefixPath (8d1ecbf)
- drop append pre-allocations for small slices (9f266e9)
- drop backwards compatibility as a design concern (36eb02d)
- drop the CommandPayload.workspace comment (0830c1c)
- e2e: add agent error, setup command and env scenarios (0fb1a92)
- e2e: add backend mocks and fault scenarios (dd19009)
- e2e: add cancel and restart scenarios (dc16794)
- e2e: add CloseRunStream and replace the reattach unit test (425502e), closes #1930
- e2e: add e2e.Server and port four apiserver tests onto it (75bfd90)
- e2e: add Org setup helpers and use them in the ported tests (e586a78)
- e2e: add pending-start cancel, concurrency and archive scenarios (f1dd6c9)
- e2e: add runner restart scenarios (bc678ca)
- e2e: add the harness runner, backend and agent, and TestStart (8a82770)
- e2e: add wake scenarios (2dfa0f8)
- e2e: assert the reason a vanished sandbox's run failed (62cfc50), closes #1930
- e2e: break mock funcs onto their own lines (cec95e7)
- e2e: carry the creating RPC's response on Task and Key (4ef26b5)
- e2e: cover a sandbox that vanished while suspended (ed4b051), closes #1930
- e2e: cover archive at load, destroy retry and a vanished sandbox (8fd3361), closes #1930
- e2e: cover Load's lost-run backstop with a scenario (760e1de), closes #1930
- e2e: cover...
v3.14.0
3.14.0 (2026-10-12)
Features
- runner: add the Backend and Sandbox interfaces to the backends (0a62e6c)
- runner: serve the Docker driver on a unix socket (2341175)
Bug Fixes
- agent: log the api_retry error under the err key (343f38f)
- agent: read agent stream lines of any length and log Claude results (c59a7b9)
- driver: log the lambda hooks error under the err key (9ef9fc4)
Miscellaneous
- agent: read agent output with a generic lines.Read iterator (28016a5)
- describe the driver server architecture in CLAUDE.md (c664ba3)
- driver: remove the one-shot driver (7f2961b)
- driver: serve the Lambda hooks from the driver command (ef8c264)
- driver: strip leftovers from driverserver and agent.Driver (7417aff)
- proposal: plan the driver-server switch-over (e7dc01d)
- proposal: split Backend and Sandbox in the driver-server design (854fff3)
- remove outdated driver-server diagrams (c3409f4)
- runner: delete the v1 backend interface (84fd060)
- runner: drop the experimental --backend aliases (56f8880)
- runner: hold a run's state on a taskRun (ec4000d)
- runner: keep the task registry in sync with taskstate (e24d417)
- runner: kill tasks through the driver's Stop (2c5c8db)
- runner: load, prune and check running through BackendV2 (5a3c6c0)
- runner: move taskRun into run.go (e58e9a2)
- runner: promote the experimental backends (8e9db25)
- runner: remove sandboxes through BackendV2 (4c3c852)
- runner: remove the old docker and lambda-microvm backends (1233735)
- runner: rename BackendV2 and SandboxV2 to Backend and Sandbox (58270f2)
- runner: rename files and variables for TaskManager and TaskRunner (d2d6e22)
- runner: split Runner into TaskManager and TaskRunner (c033a1a)
- runner: start tasks through BackendV2 (1786334)
- runner: supervise runs over the driver protocol (f97224c)
- runner: treat a foreign handle as an invalid handle (72898c2)
- runner: use cenkalti/backoff for retries (3ed318e)
- skills: add comment-command skill (75b347a)
- skills: filter Done cards when reading the board (15f07b1)