Changelog
Every CrewKit CLI release
Every released version of the CrewKit CLI, with the features and fixes that shipped in it. Subscribe with RSS.
0.7.11
CompareFeatures
- api: declared repository commands and workspace agent settings (CREW-16)c0b98db
- api: declared repository commands and workspace agent settings (CREW-16)4b984da
- api: feature progress from the epic's children (CREW-14)8c692ba
- api: read a feature's progress from its epic's children (CREW-14)4a9cd4d
- api: record work saves and emit the assigned event (CREW-8)48dcc49
- cli: print a feature's progress in work show and list (CREW-14)f7cafa0
- cli: sync workspace agent settings with per-user consent (CREW-16)bc8cbdb
- cli: work save, pickup and assign (CREW-8)9262aa0
- cli: work save, pickup and assign (CREW-8)5f78636
- dashboard: show a feature's epic progress on its work item row (CREW-14)8cd4481
- dashboard: show work saves and reassign from the row (CREW-8)0c20ecb
- dashboard: workspace agent settings panel and repository commands editor (CREW-16)5701824
Bug Fixes
- api,cli,dashboard: never undercount an epic, never blame it for a big field list (CREW-14)7b0ca81
- api,dashboard: agent settings need developer+ as well as the lead role (CREW-16)662695c
- api: parse the OpenAPI spec once per process, never in a shared cache8c9f986
- api: serve each build's own OpenAPI spec, never a cached one (CREW-27)b726183
- api: serve the internal OpenAPI spec per process too, through one loader939de3b
- cli: harden work save against stranded pushes, hooks and refusals (CREW-28)66a1263
- cli: harden work save against stranded pushes, hooks and refusals (CREW-28)a616c50
- cli: keep in-flight save markers per sha and read origin attended (CREW-28)f7c9806
- cli: kill an unattended work save push after two minutes (CREW-8)329822c
- cli: read git in the C locale and report entries a non-TTY sync drops (CREW-16)0b67199
- cli: retract removed MCP servers anywhere and fail closed on git (CREW-16)70ba0c7
Code Refactoring
- api: one Jira client per org batch, order the sync by its one read time (CREW-14)5b8e823
- cli: flatten the stranded-save check and share the save test mock (CREW-28)e24cce6
- cli: keep the push time of a stranded save, name git subcommands (CREW-8)6e84066
- cli: share the marker pattern and skip a needless origin read (CREW-28)6f13137
- cli: share the printable rule and list the vetted set whole (CREW-16)9768641
- monorepo: tighten work save after review (CREW-8)545a873
0.7.10
CompareBug Fixes
- dashboard: accept the /up health stub in the MSW handler guard1c802b1
- dashboard: accept the /up health stub in the MSW handler guard (CREW-26)559a372
- dashboard: lead with Settings, and say crewkit links only when asked4270c7b
- dashboard: point empty repository states at paths that link one5e965d5
- dashboard: point empty repository states at paths that link one (CREW-21)453adbd
- dashboard: reset project settings to what the server saved (CREW-25)#1580f561f86
- explain work start's 422 when there is no Jira connection (CREW-24)#1579827195f
0.7.9
CompareBug Fixes
- api: list a project's git remote as one of its repositories72c7b57
- api: list a project's git remote as one of its repositories (CREW-22)553da66
- api: match a listed repository in any spelling, keep removed ones removedbc40bb8
- cli: a judged registry-lock corpse is pinned so a reused inode cannot pass for it; cli-ci test on webirak-tt-4c16ga9c526c
- cli: ask origin for a branch without ever prompting939b76c
- cli: link repositories with their origin's default branchd2da86e
- cli: link repositories with their origin's default branch (CREW-23)c8956f9
- cli: pin a judged registry-lock corpse so a reused inode cannot pass for it (a30770b), closes #1443
- cli: pin the registry-lock corpse on Unix only and name what guards the pin (d2d63e1), closes #1443
- dashboard: let the New Project form create a workspace2f1c497
- dashboard: let the New Project form create a workspace (CREW-20)b5acf94
- dashboard: name the project kind group, never send a workspace remote6a8eb9e
- sessions: allowlist structured file results and strip nested edit content#1482624d4e9
- sessions: allowlist structured tool results and strip nested edit content#1482f2f18ef
- sessions: clear stored subagent team names in the residency purge#14830555700
- sessions: keep only metadata from Grep, LSP and WebFetch results#1482dbe1009
- sessions: make minimal capture fail closed for every event type#1483491a133
- sessions: make minimal capture fail closed for every event type#1483f17b431
- sessions: purge resident event data by allowlist and strip team names#1483dc08496
- sessions: strip teammate_id under residency and drop the unused teammates scope#1483c5df723
0.7.8
CompareBug Fixes
- api: refuse control characters in a stored link name (862095d), closes #1424
- api: store any remote path segment on a link, refuse only dot-only ones (e66c43b), closes #1424
- cli: detect GitLab subgroup remotes21b3cb6
- cli: detect GitLab subgroup remotes and resolve SSH host aliases (228fb12), closes #1424
- cli: drop the ssh alias rewrite and keep subgroup names off the fallbacks (db41640), closes #1424
- cli: keep legacy cache reads to owner/repo and register sibling subgroups (b8e2215), closes #1424
- cli: register subgroup projects and keep sibling subgroups apart (4beeac9), closes #1424
- cli: remove the pre-digest cache file and bound the cache filename length (83831cf), closes #1424
0.7.7
CompareFeatures
- agents: stop a job container when the API answers 409#1147fa6dfac
- agents: stop a job's container when the API answers 409#11474802093
- api: a convention-set edit creates a ResourceVersion, and key swaps keep ids#1166b65d4e3
- api: a playbook version carries its conventions, and rollback restores them#1229d041484
- api: a playbook version carries its conventions, and rollback restores them#12298c74c5d
- api: add provisioning states to the GitLab grant and reap stale ones#12524360067
- api: add provisioning states to the GitLab grant and reap stale ones#1252205cd35
- api: add the GitLab grant lifecycle: add projects, reconnect, remove the account#1257b1ef7f5
- api: add the GitLab grant lifecycle: add projects, reconnect, remove the account#12577ff0561
- api: add the GitLab Owner-token client and the gitlab_connect state#12515344710
- api: add the GitLab Owner-token client and the gitlab_connect state#1251409fceb
- api: age-prune and meter artifact analysis spend#500ca79847
- api: age-prune artifact analysis spend ledger#5002abcedc
- api: cap waitlist confirmation mails per UTC day#117712a225a
- api: cap waitlist confirmation mails per UTC day#1177afe2977
- api: clear resource version content after the content-bearing term#1246ca3f46f
- api: clear resource version content after the content-bearing term#124622a1312
- api: connect GitLab in one sign-in: start, callback, claim and service account#125486cc1f3
- api: connect GitLab in one sign-in: start, callback, claim and service account#125459082f1
- api: convention-set edits create a ResourceVersion; key swaps keep ids; admin Inert badge#11661161c01
- api: derive adaptation spend caps from billing plans#3840db2297
- api: derive adaptation spend caps from billing plans#3845aeaee9
- api: enforce GitLab default-branch protection at link and each job handshake#1163f7b59d5
- api: enforce GitLab default-branch protection at link and handshake#1163321c7dc
- api: fall back to ENV adaptation cap for lapsed subscriptions#11795943bca
- api: fall back to ENV adaptation cap for lapsed subscriptions#11799aff06f
- api: filter the picker's handle from the request log and Sentry#12513733cf4
- api: gate the waitlist Slack post on the daily confirmation budget#1188a234c70
- api: GitHub sign-in through the detour, and social buttons on device verify (#790, #792)0f3cad9
- api: Google sign-in for a hosted mailbox#7881a33d21
- api: Google sign-in for a hosted mailbox, end to end#78830322a4
- api: hold the GitLab Owner token for one picker submit, then destroy it#12533b77f7c
- api: hold the GitLab Owner token for one picker submit, then destroy it#12537a55e34
- api: magic-link detour for social addresses the provider cannot vouch for#789ddc942f
- api: mint and revoke GitLab job credentials through a host-neutral seam#106093bf070
- api: name GitLab job credentials per install so sweeps stay apart#11866a77a06
- api: name the platform provider in the social amr#6891070c42
- api: one-click GitLab connect: sign in once as the group Owner, service account, project picker, lifecycle#1210df01c24
- api: open a GitLab job's merge request at push_checked_sha, and admit GitLab jobs#106531c21cb
- api: open a GitLab job's merge request at push_checked_sha; admit GitLab jobs#1065bbee78f
- api: per-install discriminator on GitLab job credential names#11868bebacc
- api: picker submit adds the service account, protects consented branches, revokes the Owner token#125535e9ad9
- api: picker submit adds the service account, protects consented branches, revokes the Owner token#125527e8095
- api: platform-admin kill switch that force-ends a live cloud job#1131050e4b7
- api: platform-admin kill switch that force-ends a live cloud job#1131d04156b
- api: playbook wizards write real conventions in one transaction#328a10b81d
- api: promote the GitLab spec (#1046) into develop1043405
- api: retire removed playbook conventions instead of destroying them#12335e5d979
- api: revoke the GitLab Owner tokens no picker submit took#12533a9f82d
- api: serve the orchestrator's GitLab clone-and-push handshake#1064ff1d3df
- api: serve the orchestrator's GitLab clone-and-push handshake#1064d0c046c
- api: sign in with GitHub through the magic-link detour#79062c63aa
- api: sign-in methods panel and social unlink with suppression#791e27c055
- api: sign-in methods panel, and unlink with suppression#7917081630
- api: soft-retire removed playbook conventions so rollback and re-add keep the same row#1233db0e1ab
- api: sweep retired playbook conventions after the content-bearing term#1240ed59545
- api: sweep retired playbook conventions after the content-bearing term#1240cacad02
- api: the social detour — magic link for every non-hosted address, link and create, with device relay#78974cc687
- api: warn at boot when the API's public URL is not https#121237944d6
- api: write a playbook and its conventions in one transaction#328ebd57ef
- auth: social sign-in with Google and GitHub#689b9d11c0
- cli: surface dropped telemetry on the statusline, sidebar and Sentry#1128299d96e
- cli: surface dropped telemetry on the statusline, sidebar and Sentry#11287f08031
- dashboard: add github to the provider contract, with its refusal copy#79031a2304
- dashboard: add the GitLab grant lifecycle: add projects, reconnect, remove the account#12576a9644a
- dashboard: catalog vocabulary for Yours and builder; clarify running sessions#648968a12a
- dashboard: catalog vocabulary for Yours and the skill builder; honest removal copy#6483973702
- dashboard: connect GitLab in one sign-in with a project picker#1256b96ee74
- dashboard: Continue with Google on the login page#78846870f3
- dashboard: deep-link the GitLab connect steps for the typed group#1122a7c451c
- dashboard: label throttled magic-link and passkey events in the activity feed#1176ce681ab
- dashboard: label throttled magic-link and passkey events in the activity feed#1176f608615
- dashboard: playbook wizards write real conventions and flag inert playbooks#32855d64f9
- dashboard: show a GitLab link refusal in the link dialog#121191dec23
- dashboard: show the Inert badge on admin playbook pages#116694c558a
- dashboard: sign-in methods panel on the profile page#79104b81d7
- dashboard: social buttons on the device-verify page#792c11614a
- dashboard: social detour consent page and check-your-mail notice#7893417d0a
- dashboard: the GitLab connect dialog takes the group; partial connects and unreadable rules#1269339e307
- dashboard: the GitLab connect dialog takes the group; partial connects and unreadable rules#126965171d3
Bug Fixes
- agents: own the exec in the terminal watcher and test the run#114765c3c7f
- api: #1046 outside review — mint only on the checked default branch; close only a closed MRd34738c
- api: #1046 stage audit — linear GitLab glob matching, HTTP status in protection refusals61fc688
- api: #1046 stage audit — merge-request lock scope and one leave-group/bound-project path5a662da
- api: #1210 fix round: org-delete custody, group-rules 404 on Free, one revoke pathdbe0a60
- api: #1236 review — create op's conventions text drops the update clause; sentinel compares keys by YAML valueb8e3a3c
- api: #689 stage audit + outside review — unlink/detour race, atomic device approval, provider amr, provider-list sentinel48f50a2
- api: 404 unpublished platform resources for orgs that do not hold them#1152a6f01d6
- api: a failed hand-off no longer 500s a committed force-end#1131deb49db
- api: a live GitLab connect answers 200, and review fixes for the callback#1254b83a94b
- api: a playbook's stacks go to the framework_stacks column, not frontmatter#3289bac56d
- api: a project with no default branch never meets the group's rules#1254e64f06c
- api: a short head leaves its unused LLM room to the conventions#32851c31da
- api: a social detour replacement is described and mailed as one#789026ec24
- api: abandoned GitLab grants no longer hold their group#12526275251
- api: accept current and previous orchestrator secrets for rotation#109963f1b10
- api: account erasure deletes the email-bound sign-in tokens and passkey challenges#1243e215ba1
- api: account erasure deletes the email-bound sign-in tokens and passkey challenges#12432738d99
- api: address the GitLab grant lifecycle review#12572d67f2a
- api: address the picker submit review#1255e31df65
- api: allowlist resource frontmatter keys on write, import and serve#444b419176
- api: an expired trial uses the ENV adaptation cap#117962c97db
- api: answer a failed dependency with its validation reason, not a class#9162e6f5ff
- api: answer a failed token credit with its validation reason, not a class#916759dacc
- api: answer a raced org delete 409, and keep the two sentinels green (5b63217), closes #1210
- api: answer delete_raced only for the gitlab holds' restrict fk (de09bf8), closes #1210
- api: apply the unpublished platform rule to listings and skill toggles#1152cb390f6
- api: approve a device code in one conditional statement#6898d87e2a
- api: approve the integration test's device code by its current name#6898a11b46
- api: ask GitHub for 100 emails a page; one set of social sign-in assertions#79063116ac
- api: audit a capped waitlist day once per cap, not once per signup#117773f18d4
- api: backfill home-directory owners on unattributed sessions#1132b14e811
- api: batch the retraction under short locks, retry deadlocks, audit a failed enqueue#473c9a37ac
- api: bind erased addresses and scrub social sign-in addresses too#124394d633a
- api: bind MCP search and forks into the transcript taint#1034b79c399
- api: bound GitLab branch protection checks and audit refusals#1046827b73c
- api: bound the disconnect's wait on a job lock and record the lost id#1060aa6398a
- api: bound user-written framework_stacks#3285e768ad
- api: close the in-flight embed race and record each retraction#4730621c5a
- api: close the prepared-statements guard gaps found in review#1244ac52acc
- api: close the review findings on GitLab grant provisioning#12528b4cbf3
- api: close the review findings on the retired-convention sweep#12405dc495c
- api: close the review findings on the version content term#12460a0c532
- api: count grants disconnected before a refused hard delete#1060b73d901
- api: count group_projects truncation before dropping malformed rows (0caea5c), closes #1251
- api: declare the sign-in methods controller account-scoped#68913b17c6
- api: disconnect GitLab first in the admin hard delete, refusing on Busy#1060b272fbc
- api: document the inbound-message and admin source verbs; fix the two bugs the docs exposed#1123d356d12
- api: drop client-written Forwarded and Client-IP headers before the client IP is read#122138f3a34
- api: drop client-written Forwarded and Client-IP headers before the client IP is read#122179b6a9c
- api: drop the author id from every agent note the departed user wrote#1103d0f36cb
- api: drop the departed user's author id from their agent notes; state the note rule#1103fb69905
- api: erasure clears the session analysis a document renders from, and reaches agent notes#1103c77eb88
- api: erasure retires the vectorized session copy of a departed user's conversations#1103b187951
- api: erasure scrubs departed logins from session paths; home-segment backfill#11321040d3e
- api: erasure scrubs the vectorized session copy and deletes its chunks (#1103) (b14f268), closes #942
- api: evaluate every protection rule matching the default branch#1163c81f988
- api: every convention writer versions and re-scans; rollback refuses a lost set#116624771a3
- api: fail a job whose push credential fails, and record a passed push check#10646cbfd7c
- api: fork copies playbook conventions; set edits re-scan a published playbook#32867f92ba
- api: framework_stacks bounds apply to every resource type, not playbooks only#328e16d477
- api: gate the waitlist Slack backfill on a confirmed count#11889163e37
- api: gate the waitlist Slack post on the daily cap#11881de0e42
- api: give the social sign-in events deliberate severities#788a19c7ca
- api: grant partial artifact batches within exact spend caps#500108f678
- api: guard the unvalidated served-version save and word the rollback refusal#11668a414a4
- api: hide unpublished marketplace playbooks from nonsubscribers#112011d523a
- api: hide unpublished marketplace playbooks from nonsubscribers#112042e1a9b
- api: hide unpublished platform resources from orgs that do not hold them#11524b51caa
- api: keep a holder's drafts on flat effective; C8 reads not_found#1152de6c23c
- api: keep a nil status on a revoke failure event, drop only a missing session id#12556bfcd5f
- api: keep an identity provider's client_secret out of its JSON#7889328053
- api: keep org bulk off markers for unheld drafts#1152c6df330
- api: keep provider and database prose out of exception log lines, lane D3#916cc5be55
- api: keep provider and database prose out of exception log lines, lane D3#916115e72d
- api: keep transcript deliveries for the life of their user, project or org#124731f1d18
- api: keep transcript deliveries for the life of their user, project or org#1247822da75
- api: keep transcript-tainted session artifacts manager-floored#103486927b9
- api: key every IP throttle on one client-address helper#1180fa11d60
- api: key every IP throttle on one client-address helper#1180f28d78c
- api: leave_group re-checks the link under its lock before destroying it#10461ec5cd2
- api: LLM leg always sees playbook conventions; sweep and findings know them#3282bd48e1
- api: lock the job FOR NO KEY UPDATE so a disconnect cannot deadlock the MR open#10656efe373
- api: log an unconfirmed MR close, and pin the protection check's branch#104655e35bd
- api: log each SSO auth-time fallback so an enabled opt-out is visible#73000c70d6
- api: log the unswept pasted-account mint plainly, clear a taken-over row's PAT ids#125718121d4
- api: mint on the re-read link and bound, guard and record the job lock#1060b85edcc
- api: mint only on the default branch checked, and close only a closed MR#1046b80a17c
- api: name force push in a picker refusal, keep revoking past an audit failure#12556fd423f
- api: neither body nor conventions can starve the LLM leg; token before bytes#3288c050d2
- api: never return a credential minted on a disconnected grant#1060b1668cd
- api: one POST /admin/resources in the internal spec, and a sentinel for duplicate YAML keys95eb69d
- api: one POST /admin/resources in the internal spec; sentinel for duplicate YAML keys27eb11d
- api: only a playbook's framework_stacks are writable through the org resource route#328e2f12f3
- api: pin the platform provider list to one source#689659b87b
- api: post only the confirmed waitlist backfill set#1188f864324
- api: prevent orphan inbound messages and clamp admin source pagination#11231726d9c
- api: prune transcript deliveries at the session content retention term#1247719e397
- api: re-check a terminal job under its row lock before any handshake GitLab call#11485044ce5
- api: re-check a terminal job under its row lock before handshake GitLab calls#11489ca456c
- api: re-read the link at mint completion and revoke on every unlink path#10604a7de64
- api: read the GitLab project before the merge-request lock#1046a332f92
- api: read the rotation map as credentials deliver it, add the pre-deploy check#109914fb6ac
- api: reap the committed rows a non-transactional test leaves behind#123429856ad
- api: reap the committed rows a non-transactional test leaves behind#1234ae057ad
- api: record a veto-lifted retraction as stopped, never completed#473f0eca50
- api: refuse missing SSO auth time unless the owner opts out#7300775c4a
- api: refuse missing SSO auth time unless the owner opts out#730d5c4401
- api: refuse to boot production or staging with prepared statements off#12446d461f7
- api: refuse to boot production with prepared statements off#1244f8f3292
- api: reject malformed admin and artifact input#1164bd88434
- api: reject malformed admin and artifact input instead of raising#1164da0689c
- api: report a failed enqueue_failed audit to Sentry like the other rescues#473e4ddcb9
- api: restrict an org delete past a late gitlab hold, withhold erased user id (4e2b921), closes #1210
- api: restrict new subscriptions to published platform playbooks#11200945a81
- api: retract embedding chunks when an egress veto turns on#4736910439
- api: retract embedding chunks when an egress veto turns on#473ac113be
- api: revoke an erased account's GitLab Owner holds after its transaction commits#1253967b7ce
- api: revoke an unlinked project's job credentials at the unlink#106030e56d3
- api: revoke held GitLab Owner tokens in one transaction, and before erasure#1253b60f068
- api: revoke held gitlab owner tokens on org delete, one revoke path with its receipt (96a6543), closes #1210
- api: revoke the GitHub sign-in token after the account read#6893ca10fb
- api: roll back a refused PATCH's park of a retired convention#1233c40e5e6
- api: rotate the orchestrator secret with current and previous values#1099fdb047c
- api: scan a playbook's conventions; keep plain-save error contracts#328bd76cd3
- api: schedule the expired auth-token sweep in every environment#12268e40753
- api: schedule the expired auth-token sweep in every environment#12269268dbe
- api: scrub departed logins from session JSON paths#1132dc68074
- api: scrub every agent note the departed user wrote; one result shape#1103962fc23
- api: serialise detour completion with unlink on the account row#6897cd0152
- api: serialise the callback's link on the account's lock#6891e42b3d
- api: serialize a segment mint with a concurrent lineage taint#10340dfefcb
- api: state what the IP helper assumes and bucket mapped IPv4#11808a4c423
- api: strip any format suffix in route_path and bucket IPv6 per /64#1171b7f95dc
- api: take both #1229 reviews: verify restored conventions, snapshot every writere7cb8c2
- api: take both D3 reviews: follow prose through a local, pin allowlist counts#9168070b4f
- api: take the #1233 review findings on convention retirement#12334067efd
- api: take the #1251 review findings and the group project list ruling56d8100
- api: take the #689 review findings#68955d1f12
- api: take the transcript-delivery advisory lock through a bind#1034689726b
- api: test the prepared-statements guard against URL-built configs#124431d4ffa
- api: test the public-URL boot gate, and toast a refusal after the dialog closes (#1212) (b0dedde), closes #1211
- api: test the real lineage walk under the lock and note the lock order#1034367d031
- api: the grade re-score probe loads resource_type for scanned bytes#328c052cb6
- api: the home-segment backfill never deletes; case-blind prefixes#1132903caeb
- api: throttle public waitlist signups per IP#117109eaccf
- api: throttle public waitlist signups per IP and strip any format suffix#1171d18fb8f
- api: tighten the paste-flow removal tests and comments#1258117f6b8
- api: unknown branch rules preview as null, and two re-check fixes#12549490176
- api: unlink social identities on an address move; gate 3 round 1#788eb3d730
- api: use literal GitLab globs and retain HTTP diagnostics#10463f29f13
- api: warn on a pre-label mint the sweep cannot resolve by name#1186d197f5f
- api: write a passed push check once, and bound the mint lock for the head read#10641cb6cef
- auth: cap magic links and passkey challenges per address in the app#1154c6c98d2
- auth: cap magic links and passkey challenges per address in the app#11545ab47ef
- auth: count the login cap per mailbox on an indexed key#115488933ee
- ci: create the coverage comment when a PR has none yet4b707aa
- ci: fall back to a new coverage comment instead of --create-if-nonefd88d13
- ci: find the API coverage comment by its marker instead of --edit-last#12183ded715
- ci: find the API coverage comment by its marker instead of --edit-last#1218f2816a0
- cli: accept real subagent ids and type the remaining path ids#1084318f611
- cli: count a 2xx delivered only for a data envelope#108477080dd
- cli: give share_update's 422 fixture the envelope the API sendsa01de9a
- cli: give share_update's 500 fixture the real error envelope tooc58ee17
- cli: give share_update's error fixtures the envelope the API sendsf47b0e0
- cli: key vaults by exact recorded host and re-home legacy ones#809722544c
- cli: key vaults by exact recorded host and re-home legacy ones#80913fa956
- cli: pass typed ids in the resumed-context test after the develop merge#10341e56477
- cli: per-conversation, identity-free telemetry-loss reports#11287a4f078
- cli: redact all buffer failures and pin stop refusals#7626db1ddc
- cli: refuse pidfile signals without a recorded start time#762677334f
- cli: refuse pidfile signals without a recorded start time#7622679de9
- cli: refuse re-homing on an unreadable uid; re-check twins before removal#80959f8f48
- cli: refuse vault re-homing beside any crewkit process; logout takes twins#80942146cc
- cli: reset the loss ledger in one critical section; floor stall events#1128c10237f
- cli: surface discarded telemetry and require accepted in 2xx#10848551353
- cli: take the gate-3 findings on vault re-homing#8099807452
- cli: typed, validated ids for every API path segment#108468b1b44
- cli: typed, validated ids for session, task and save-state path segments#10844db9d08
- dashboard: claim the catalog fallback only for agents and skills; badge forks Your copy#6483298f94
- dashboard: clamp the protect request at submit for unreadable rules#1269be86b5b
- dashboard: clear the GitLab carrier on every callback exit, trim and cap the group#1122588b554
- dashboard: close the PostHog paths before_send cannot see#1228f6770f0
- dashboard: contain long artifact names in blueprint generation#1153a62624b
- dashboard: contain long artifact names in blueprint generation#11535581f15
- dashboard: hold the AUP publish open in its in-flight test#121758a35d4
- dashboard: hold the AUP publish open in its in-flight test#1217c17a345
- dashboard: keep one-time tokens out of analytics pageviews and take review findings#689fd50586
- dashboard: keep the connect group across the callback; accurate disclosure#1269945762e
- dashboard: keep the GitLab connect handle and callback code out of URLs#1256dea45d5
- dashboard: keep the GitLab connect handler free of a throw the React Compiler cannot optimize#1256396a239
- dashboard: keep the GitLab connect handler free of a throw the React Compiler cannot optimize#12569b05a07
- dashboard: move the picker-submit spec entry to T6, with its route#125686c4924
- dashboard: name pushes and force push together in a picker refusal#12557cdc057
- dashboard: name what Yours' button really does and drop the unverified session claim#648d18e745
- dashboard: passkey changes refresh the sign-in panel; pin the unlink notice failure#791a1c16c3
- dashboard: protect social sign-in completion and explain refusals#689d7fa9bb
- dashboard: read only the detour preview fields the page uses#68973677d7
- dashboard: scope the Sentry code/state redaction and cover transactions#1256c44a46e
- dashboard: send the gitlab picker back to a fresh start once its handle is spent (2c43006), closes #1210
- dashboard: social sign-in dashboard and docs, lane B#68973f15d4
- dashboard: strip query and fragment from every URL PostHog records#122811fd5f7
- dashboard: strip query and fragment from every URL PostHog records#1228dba32c9
Code Refactoring
- api: /simplify pass over the one-click GitLab connect#1210e372f50
- api: build the resource Scope with the flat effective org#115233a2f3a
- api: check the GitLab group once per connect purpose and mint PATs through one helper#1210a4c4417
- api: count the refused hard delete's grants on a plain relation#1060b7a8d2c
- api: drop the legacy job-credential name branch#1186f42ee28
- api: drop the needless rollback guard on the GitLab safety CHECKs#1252ab644ee
- api: drop the redundant integer type guard and a duplicate assertion#1164b1f8fb5
- api: drop the unobservable refusal guard on the relayed code#689b15b2b1
- api: fold the social sign-in migrations#6894763dfd
- api: framework stack bounds live on Resource, shared with for_stacks#328ab466c6
- api: keep JobMergeRequest's post-commit link re-derivation#1046b558d25
- api: let pundit_user build the context for a given org#1152c670d42
- api: let the unique indexes refuse a stale social detour#789f8c8885
- api: meter artifact analysis batches once per org#500caf5f3d
- api: name the erasure's artifact set QUALIFYING_ARTIFACTS#1103c41b6a5
- api: name the Owner-token revoke event by T4's constant#1254f1afd3e
- api: one list of detour refusal codes#689ae91e1f
- api: one provider registry and one detour result#689b520fa7
- api: one provider-name fallback and an inline unlink notice#79148f3235
- api: one version lookup per snapshot, and cite the pin-serving issue (#1246) (b08dc08), closes #1264
- api: plainer lapsed-subscription check; drop an unreachable test#11798afcfea
- api: read push_checked_sha under the job's row lock alone#10657f7cfe6
- api: read the adaptation cap through BillingPlan#limit#38467e2b2e
- api: read the install label from per-environment credentials#118633bc2a2
- api: remove the paste-a-token GitLab connect flow#12588bee255
- api: remove the paste-a-token GitLab connect flow#1258c1a927a
- api: retire artifact collection content after consumer audit#500990abf1
- api: share one GitLab list pager and pin the group-rule ruling#1163371fb23
- api: share the browser sign-in leg and the sign-up follow-up#788d709398
- api: simplify the GitLab spec before its develop merge#10467c58bb5
- api: stack constants beside the model's others; #444 comment names its bound#32864977cb
- cli: trim the vault re-homing module#809c1be560
- dashboard: drop the detour notice's fragment guard, which guarded nothing#789f9b0417
- dashboard: inline the shared social refusal copy#6891d10f69
- dashboard: name the trimmed GitLab group instead of reassigning the parameter#112251ed1b5
- dashboard: one hook for a wizard's convention check#3281bb2afc
- dashboard: one loading card and one copy of the shared social refusals#789a29b800
- dashboard: remove the paste-a-token GitLab connect form#12580ce4d4f
- dashboard: share activity feed and filter labels#11760ba9169
- dashboard: type pickedProjects from the submit request#126968a216e
0.7.6
CompareFeatures
- api: catch "disregard previous …" without a quantifier in the injection scan (#463) (3271d84), closes #462
- api: catch "disregard previous" at high and narrow two rows against prose (#463) (e5b6377), closes #462
- api: count-only mode for the residency purge that reports what it would destroy#694f337b43
- api: count-only rake task listing active_storage_blobs whose object is gone (#803) (78c31a1), closes #467
- api: let org admins set the embedding egress opt-out#47467d155f
- api: let org admins set the embedding egress opt-out (#474) (1feb108), closes #466 #473 #437
- api: mark the attribution pre-fix window with a constant meta.attribution_since (#612) (8a7de4a), closes #615 #645
- api: per-source generally_available under the global marketplace GA flag#646c9e1c1b
- api: per-source generally_available under the global marketplace GA flag (#646) (0dfed8a), closes #158 #640
- api: port the prompt-injection patterns into the static security scan#463c37281d
- api: port the prompt-injection patterns into the static security scan (#463) (e03274a), closes #462
- api: record the version a subagent ran on, bucket nil as unattributed#612158e458
- api: record the version a subagent ran on, bucket nil as unattributed (#612) (417b3db), closes #615 #645
- api: register this repo's colliding .claude/ resources as project-tier Resources#3352fe35e9
- api: register this repo's colliding .claude/ resources as project-tier Resources (#335) (a8440e6), closes #378 #158
- api: serve a project's vocabulary terms to the Notetaker#5266f2ccef
- api: serve a project's vocabulary terms to the Notetaker#526668f669
- api: store how a resource adoption originated instead of inferring it (#651) (860159d), closes #258
- ci: lift the mutation-check harness into scripts/ with four verdicts and three runners#77635aa573
- ci: lift the mutation-check harness into scripts/ with four verdicts and three runners (#776) (9534ba7), closes #752 #586
- cli: add --sensitive and --no-llm-gateway to crewkit blueprint (#822) (7bc48f2), closes #805
- cli: give status an injectable runtime dir and config dir through the _in seam#830ec31719
- cli: merge bound-project vocabulary ahead of the user list in the one resolver (#526) (a47f7ef), closes #529
- cli: read the org's telemetry settings for a session-less command (#822) (0fd7f9c), closes #805
- cli: run the LLM gateway for the life of a crewkit blueprint command, uploads off (#822) (ce05448), closes #805
- cli: send the served resource version hash with subagent stats (#612) (638252d), closes #615 #645
- dashboard: give the AUP consent dialog a Decline path (#518) (af34f8b), closes #370 #372
- dashboard: regenerate the API types for the project vocabulary route#5261b036d5
- dashboard: show an external source's last sync error and retry state#6408c8449a
- dashboard: tell the user to remove the Slack app when the revoke was not confirmed (#771) (b83dda7), closes #756 #770
Bug Fixes
- api: attribute invitation declines too, and say what versions.organization_id means (#437) (42b2259), closes #424 #447 #355
- api: attribute the opt-out flip's version and refuse non-scalar values (#474) (1ba743d), closes #466 #473 #437
- api: cite Law 25 s. 27/28.1 and drop the stale skeleton comments (#518) (e4b6dc6), closes #370
- api: clear cloud-job diffs, patches and logs under the session-content retention term#51949cc33e
- api: clear cloud-job diffs, patches and logs under the session-content retention term (#519) (f03242a), closes #513 #493 #447
- api: close the bulk envelope's error tokens and survive one item's raise#650219e056
- api: close the bulk envelope's error tokens and survive one item's raise (#650) (4c160df), closes #647
- api: compare whodunnit as an integer so privilege-escalation detection can fire (#437) (6a5b0c5), closes #424 #447 #355
- api: count only the embedding chunks the purge retracts, stop materialising version ids#6949403951
- api: deliver the unconfirmed-revoke event to Sentry and allowlist Slack's error detail#77192e28dd
- api: document only the statuses the import and convention-override routes emit#8546dd0057
- api: document the seven CLI-consumed routes and the object error envelope in the spec#8544e63044
- api: document the seven CLI-consumed routes and the object error envelope in the spec (#854) (229b27f), closes #816 #375
- api: drop attribution_since meta and bound every version-hash writer#6129a1ee33
- api: drop the inert trailing-dot guard from the TXT lookup#7670c3572d
- api: encrypt session_shares.share_token at rest, deterministic for lookups#434505ba47
- api: encrypt session_shares.share_token at rest, deterministic for lookups (#434) (9e750ee), closes #433 #356 #447
- api: exempt agent_job ingest from the AUP gate — consent is at the door#440695b610
- api: exempt agent_job ingest from the AUP gate — consent is at the door (#440) (51c6bc7), closes #370 #373 #478
- api: fold the PR-write test into its existing peer and sharpen #800's comments (1214238), closes #514
- api: four defects the first executed run found in the slug guard and bulk item (#649) (bb89887), closes #650 #651
- api: gate the plane token mints on AUP consent and put them under the sentinel#478f386464
- api: gate the plane token mints on AUP consent and put them under the sentinel (#478) (7392519), closes #370
- api: gate the single-listing adopt route on the per-source bit#646db286ba
- api: keep a per-source dark group out of the slug-holder annotation#6466f9d376
- api: keep cloud-job diffs, patches and prompts out of PaperTrail versions (#519) (d94ca9e), closes #447
- api: keep every cloud-job content column out of PaperTrail versions#5194fd2928
- api: keep the primary key in the origin backfill's batched select (#651) (234e186), closes #650
- api: key the slug lock per tenant, lock the marketplace batch door, cap ids (#649) (6074833), closes #650 #651
- api: lock the slug per organization, keep malformed bulk items in request order (#649) (cae867f), closes #650
- api: make the active integration scope require a token like active? does#5106329dfd
- api: name no per-source dark holder in the slug guard's 409; count on from lit items#646c126a00
- api: park budget-exhausted and deterministic parser refusals instead of retrying#6400266e1a
- api: populate PaperTrail whodunnit from the API's auth, drop IP/user-agent#43713a1157
- api: populate PaperTrail whodunnit from the API's auth, drop IP/user-agent (#437) (2e991f4), closes #424 #447 #355
- api: preload the agent directory's projects on the plane policy pull#6769f105a4
- api: preload the agent directory's projects on the plane policy pull#676d878da1
- api: purge SaveState versions with no created_at, and close the purge's public door#69405ee068
- api: purge SaveState versions with no created_at, and close the purge's public door#694e5f4aa7
- api: queue the re-scan a failed platform publish refuses on, and log the refusal (#462) (7e8627b), closes #436 #422 #463
- api: record the account deletion and export routes as consent-exempt rights#51838420d3
- api: record the account deletion and export routes as consent-exempt rights (#518) (0f866ef), closes #370
- api: record the delivered-slug advisory lock as a Brakeman false positive#6507dfd22e
- api: refuse a same-slug adoption at write time with 409 slug_taken (#649) (0ec563e), closes #641 #650
- api: refuse the ciphertext envelope as a share token (#434) (debeddd), closes #433 #356 #447
- api: refuse the unattributed bucket as a comparison arm at the door#61239bb2ae
- api: refuse to publish a platform resource whose LLM scan failed or never ran#4629a78538
- api: refuse to publish a platform resource whose LLM scan failed or never ran (#462) (aed261b), closes #436 #422 #463
- api: renumber the generally_available migration after the #651 origin migration#646a5403aa
- api: report whether Slack confirmed the auth.revoke on disconnect#771bea184b
- api: report whether Slack confirmed the auth.revoke on disconnect#77131c0d8a
- api: rescue only the storage call and pin the orphan task's no-write contract#803c736343
- api: rescue only the storage call and pin the orphan task's no-write contract#8039efb8ae
- api: resolve the domain-verification TXT name as absolute#7676e38c90
- api: resolve the domain-verification TXT name as absolute#76757f7dbf
- api: retry a failed LLM security leg instead of leaving the row refused (#462) (c9cf61e), closes #422
- api: retry only classified transient failures, and select them through one scope#64019b6b10
- api: retry transient external-source sync failures after a backoff#640c0f3626
- api: retry transient external-source sync failures after a backoff (#640) (a78d4e4), closes #646
- api: revoke the GitHub token upstream when a connection or integration is disconnected#799b196560
- api: run batch_adopt's per-source gate inside the item guard#64664af0c1
- api: say what the dark-marketplace holder withholds, and gate it in one place#650052f57b
- api: scan registered local resources and share the frontmatter parser#3358016e96
- api: scope, bound and sanitize the derived project vocabulary#526ba3c4f9
- api: share the log-capture and residency test helpers behind #804's gates (a46affe), closes #475
- api: stamp whodunnit on the optional-auth path and the org id on every audited write (#437) (5279455), closes #424 #447 #355
- api: stop the orchestrator worker setting a cloud job's PR fields#800c5c6586
- api: stop the orchestrator worker setting a cloud job's PR fields (#800) (58abac1), closes #514
- api: take the gate-3 findings on the per-source GA bit#6466ab271a
- api: withdraw the gitlab and bitbucket connect flows until they are real#510979c670
- api: withdraw the gitlab and bitbucket connect flows until they are real (#510) (8901043), closes #509
- api: withhold artifact context from Blueprint and agent-reply prompts for resident orgs#80432425d2
- api: withhold artifact context from Blueprint and agent-reply prompts for resident orgs (#804) (11fef0e), closes #475
- api: zero an empty aggregate scope and give tests real version hashes#612b7ebbcf
- ci: close four mutation-check instrument gaps found in review#7769e21b54
- ci: kill the runner's process group on timeout and name the backup on interrupt#7760e4526d
- ci: make the process-group case fail under a reverted group kill#776850bddc
- cli: budget the vocabulary fetch at its own timeout and test the non-200 path#5267dece32
- cli: check the error envelope rule before the free-form early return#81627c0d48
- cli: count recovery outcomes, not decisions, and pin the recovery entry points#639b7a5d72
- cli: decide a bounded run's timeout on the kill, not on a clock that races it#82388ca608
- cli: decide a bounded run's timeout on the kill, not on a clock that races it#8235bdcda0
- cli: escape bidi controls in refusal paths too#778fac3ca2
- cli: fail closed on the orphan re-read and count sidecars apart (#811) (dafea1b), closes #775
- cli: fold #774's review — fd-based repair, symlink-refusing reader, one marker seam (0a80f8d), closes #752
- cli: guard config::cache_dir_opt like the config and data doors#828fbdc13f
- cli: guard config::cache_dir_opt like the config and data doors (#828) (47d7b2c), closes #808
- cli: isolate every cli/tests binary from the real HOME and pin it with a sentinel (#828) (7ec68d8), closes #808
- cli: keep the sidebar's Remote Control hint silent where it would clip the command#7720d6545f
- cli: log the runtime-dir listing refusal and record an unreadable subdir in the digest#8303e91940
- cli: make the bound-probe control block instead of racing the binary (#823) (87d3192), closes #830
- cli: make the HOME-isolation sentinel see every spelling of a test binary spawn (#828) (c8c9d2f), closes #808
- cli: name a refused cache dir in status and escape control bytes in refusals#77854c2c27
- cli: pin the cache guard's relocation half and name a refused cache dir#778a1b74fd
- cli: pin the exempt door's caller list and refuse it an unrelocated HOME (#808) (3978676), closes #781 #692
- cli: reap Notetaker account sidecars whose capture never wrote a transcript#811600c2d8
- cli: reap Notetaker account sidecars whose capture never wrote a transcript (#811) (b288e59), closes #775
- cli: refuse a credential dir under a devcontainer, .envrc or .vscode tree, not only .git#778f12da75
- cli: refuse a credential dir under a devcontainer, .envrc or .vscode tree, not only .git#778e395a71
- cli: refuse the real config directory from a test binary#808d74942c
- cli: refuse the real config directory from a test binary (#808) (fe3d931), closes #781 #692
- cli: reopen audio legs with the machine lock released, and log the decision#639171d223
- cli: reopen audio legs with the machine lock released, and log the decision#639cd54469
- cli: repair an owner-read-stripped dir before the fd checks, label the open failure (#774) (57583af), closes #752
- cli: require an explicit directory at every config-dir door in a test binary (#808) (e5e5481), closes #781
- cli: route crewkit blueprint's claude children through the LLM gateway#822ab62410
- cli: route crewkit blueprint's claude children through the LLM gateway (#822) (e32b913), closes #805
- cli: route the observer's own claude children through the LLM gateway#805fb5acc0
- cli: route the observer's own claude children through the LLM gateway (#805) (9736fa3), closes #364
- cli: show the Remote Control state in the TUI sidebar, off the same gateway value#772fdc0b33
- cli: show the Remote Control state in the TUI sidebar, off the same gateway value (#772) (bc3623c), closes #533
- cli: survive a lost runtime-dir create race; drive the LSP marker test#774a29bdb2
- cli: survive a lost runtime-dir create race; drive the LSP marker test (#774) (38d4860), closes #752
- cli: take the gate-3 findings on the blueprint gateway seam (#822) (fdd39a1), closes #805
- cli: take the gate-3 findings on the cache-dir door's in-suite control (#828) (01d1c69), closes #808
- cli: take the gate-3 findings on the fixture guard#8165f8b2da
- cli: take the gate-3 findings on the gateway child routing (#805) (fab92d2), closes #364
- dashboard: decline the AUP in one navigation and pin the exemption (#518) (a5b20f7), closes #370
- dashboard: do not call a paused source retrying#640a1de4b0
- dashboard: explain a user-level GitHub failure on the Runs page#798eb7c77c
- dashboard: explain a user-level GitHub failure on the Runs page#7985ce04be
- dashboard: keep a connected legacy provider visible so it can be disconnected#5109e5b2c2
- dashboard: keep connect disabled past the redirect bound and clear it on pagehide#520a27586c
- dashboard: label the unattributed bucket instead of rendering it as a hash#6127c80ec5
- dashboard: list only the git providers that can be connected#510ce2c63d
- dashboard: match the API GitHub-connection error exactly before offering support#798acabd7d
- dashboard: name the cloud-job columns the retention term clears#5196a20daf
- dashboard: pin the integrations outline and bound the connect spinner#520b9d8734
- dashboard: pin the integrations outline and bound the connect spinner (#520) (a1b8f19), closes #459
- dashboard: read slack_revoked as required and say when no token was held#77112503ea
- dashboard: regenerate api types for unavailable bulk-item token after the #875 rebase#6466e5d6bf
- dashboard: regenerate the API types after the vocabulary description change#52618ad94b
- dashboard: show nothing for a paused source's error summary#6407552ea4
- dashboard: state the retention term for cloud-job content on the integrations page (#519) (6166b52), closes #513
- dashboard: wrap the last bare logout callback and release the decline lock#518e2bee8b
- sessions: match a multipart field on its Content-Disposition name, pin the boundary#900d9d7806
- sessions: match a multipart field on its Content-Disposition name, refuse duplicates#90026dd209
- sessions: pin the multipart boundary and refuse ambiguous parts#900f07e27d
Code Refactoring
- api: normalise the share token once and share the test helper#434c7267bd
- api: pin the NULL provenance stamp and share the agent_job test helpers#440c4944c9
- api: table the residency purge's steps so a count can read the same relations#694c248bc8
- ci: drop the redundant OSError subclasses from the group reaper#776d5f8016
- cli: one telling of the #808 incident, and a for_test constructor (#808) (003c62f), closes #781
- cli: read a path in both spellings through one helper#77897b94d4
- dashboard: rename transcript-view to transcript-presentation#801d854379
- dashboard: rename transcript-view to transcript-presentation (#801) (b6c25da), closes #457
- sessions: bind the form-data kind once and fold the raw multipart helper#9007c09889
0.7.5
CompareFeatures
- agents: add the code-simplifier agent for the implement-queue reduce step3e3a214
- api: a sourced skill may share its name with a first-party one, one name per library83ee0b5
- api: accept sales inquiries from the public site573b972
- api: back-fill the offboarding decommissions owed by already-departed orgsb543ff3
- api: bulk on/off for first-party adoptions and project exclusions with a durable opt-outf3904ad
- api: catalog read with per-item adoption state at org and project scope656e311
- api: detect first-seen wire model ids priced by a family prefix row#625f940b84
- api: every skill-source sync is a recorded run with per-path entries9539877
- api: offboarding issues the plane decommission that destroys a departed org's credentials1fc8f82
- api: offboarding issues the plane decommission, from a DB trigger (045e161), closes #681
- api: one live decommission per side as a table property (826f116), closes #681
- api: org_offboarded is a DECOMMISSION-ONLY reason on both sides (7c29438), closes #681
- api: org-wide synced-but-unused skill report#586105b8c4
- api: publish data_plane.decommission_issued after an org soft deleteeed7051
- api: read one marketplace adoption by id5e1d420
- api: refuse analysis-worker readiness unless it connects as its own role#6544f4f1e0
- api: show which library a platform skill belongs to522fee1
- api: source-wide adopt and unadopt for marketplace skills, bulk throttle89e6b7f
- api: sync run ledger for external skill sources, with paused-respecting outcomes51063a0
- api: the offboarding decommission's audit event and its backfillcca81b3
- api: the skill parser reports every skip as data and types its errors0911316
- auth: account email change with confirmation and an old-address lock leverf14291e
- auth: account email change with confirmation and an old-address lock lever (62846cf), closes #699
- auth: claim an existing account through SCIM under a verified domaindd1fb04
- auth: claim an existing account through SCIM under a verified domain (ed59b91), closes #700
- auth: make the manager stamp lifecycle true end to end1f08cd6
- auth: make the manager stamp lifecycle true end to end (368222f), closes #697
- auth: offer discoverable passkeys before email entry68a3a13
- auth: record every manager-stamp release as a security event5ef6608
- auth: restrict OIDC providers to a hosted domain and mint the asserted auth_time9bbd177
- auth: restrict OIDC providers to a hosted domain and mint the asserted auth_time (f6c8d86), closes #698
- cli: a second login adds an Account; switch, scoped logout, token label (bd9c3db), closes #711
- cli: auth status --verify, the live per-Account check5d82b96
- cli: auth status --verify, the live per-Account check (8342cf7), closes #713
- cli: directory rules and the ask-once Account picker851512a
- cli: directory rules, auth use, and status naming this directory's Account (da35f2a), closes #712
- cli: hand the MCP server and the statusline the session's Account (2286c97), closes #710
- cli: let a plain-http deployment opt in to cleartext, loudly (deca0d3), closes #754
- cli: multi-account support — per-Account vaults, registry, switch and scoped logout1c7e2ff
- cli: per-Account vaults and the secretless Account registry (18ebf8e), closes #708
- cli: pin the Notetaker's Account at Start and pass it at Uploadd81ba01
- cli: pin the Notetaker's Account at Start and pass it at Upload (83a48a9), closes #701
- cli: resolve one Account per process, refuse by name, split login (c8ba307), closes #706
- cli: the ask-once Account picker and the off-terminal Default (e4c4736), closes #714
- cli: the tap-scoping mechanism, dormant, and no PID in a rendered error923e242
- dashboard: admin skills show which library a skill belongs toccb7414
- dashboard: align the app logo with the public-site identity37b93a0
- dashboard: catalog client, hooks and MSW handlers for the skills catalog7a1aa6d
- dashboard: give the public site a truthful, crawlable surface0c46e75
- dashboard: let the hero email field carry the early-access requestc3fa446
- dashboard: make the theme switcher obvious in the header and in Settings7eb3d92
- dashboard: public site — fixes, Lighthouse ≥ 90 and SEO/AI-engine presence6fff577
- dashboard: publish the integration pages, the changelog and the docs metadata1341c46
- dashboard: rebuild /integrations in the marketplace idiomc430d09
- dashboard: replace the sales mailto with an in-place inquiry dialogf92ccab
- dashboard: Skills & agents at project scope, the catalog's project columna33c5e0
- dashboard: Skills & agents catalog replaces the marketplace and adopted pages76125eb
- sessions: record which rung selected the Account a session runs under0790ca3
- sessions: record which rung selected the Account a session runs under (fcb5b6c), closes #707
- site: harmonize 404 and shared conversation surfaces346acba
- site: public-site redesign, aligned app logo and Talk to Sales inquiry flow1be6c03
- site: unify public auth and onboarding presentation8fb7224
Bug Fixes
- api: a library the column names but nothing holds is an error, not a null1d8d6a2
- api: a named pin the existing adoption lacks is refused, not ignored6805388
- api: a refusal must not contradict itself, nor name a role that does not exist#6548c32462
- api: a remedy must not break the plane to satisfy the check#654af10edb
- api: a removed skill source keeps naming the skills imported from it9e7dc68
- api: a revive keeps the original adopteraa4145d
- api: a skill whose source was soft-deleted is no longer usablef42fa48
- api: a sync run's verdict is written under the row lock and never stamped over a live sync82e422f
- api: adopt's 422 names the pin it refuses, not a bare tokenccffd20
- api: ask the worker's PRIVILEGES, not its role attributes#65426b1de7
- api: assert the worker's role by MEMBERSHIP, not identity#6544649f8d
- api: bound and order the first-seen model detector's reads#6253dbd859
- api: close the offboarding decommission follow-ups#780b524ac9
- api: close the un-adopt oracle and stop rendering those rows inverted#5869e6c2d4
- api: complete the race-control reduction left half-applied#780464a8ae
- api: confine a losing decommission insert to its own savepoint (83a504b), closes #681
- api: confine SecurityEventService audit writes to their own savepoint#7822786719
- api: confine the audit insert to its own savepoint (a602010), closes #782
- api: custody must ask what the connection can REACH, not what is in force#654c3e4c41
- api: derive the TXT record name from one source0596bd5
- api: derive the TXT record name from one source (1f50831), closes #745
- api: discharge a WRITTEN-OFF offboarding row, and share the revoke verb#7801ac5927
- api: drop the ActiveRecord tracing span so no SQL page reaches Sentry#65898cb94c
- api: filter the client secret on the JSON path Rails uses, and type jwks_keys#787c671bfc
- api: import skills nested under category folders from GitHub sources4dab56f
- api: keep a quoted value out of a SQL span's relation#658cce801b
- api: normalize organization_domains.domain on write, with an audited backfill19cb18e
- api: normalize organization_domains.domain on write, with an audited backfill (7888a75), closes #748
- api: one authority for the opt-out marker, and anomalies that name the org2610f30
- api: one failing skill no longer takes a GitHub skill source down388a024
- api: open notify's savepoint only inside a caller's transaction#782dd94b06
- api: preserve session summaries when closing without a final summary0729cb3
- api: re-assert installation liveness and name an empty tokens file01bdf03
- api: refuse destroying an Essential opt-out marker on a draft resource5e05f99
- api: say what the un-adopt row actually knows, and make its diagnostic runnable#586ec621f0
- api: say what the un-adopt row actually knows, and make its diagnostic runnable#5869ca5454
- api: scope the data-plane installation index through Pundit#6161c054db
- api: single skill adopt revives a removed row like bulk does633749d
- api: stop refusing the hardened worker deployment#654cad1e08
- api: stop the model detector starving its own alerts#625c8ab418
- api: sync-run ledger keeps the parser's skips ahead of the 200-entry bounddd7ccc6
- api: sync-run ledger keeps upstream text and raw errors out of stored rowscec9fee
- api: take the adversarial review — scan on revive, pin the cap boundary3b34d2d
- api: take the gate-3 findings on the offboarding backfillb31a77c
- api: take the stage A1 review — one serving predicate, pinned ordering, shared user summary1863d34
- api: take the stage A2 review — bulk never aborts, marker-gated adopted_at, project exclusion service4ad0211
- api: take the stage A3 review — capped source expansion, mode conflicts, honest authz paths04a08a0
- api: the BYPASSRLS remedy must not alter a shared role#65430d50da
- api: the catalog preloads the source it now asks every sourced row aboutcc42b14
- auth: bound the SAML AuthnInstant like the OIDC auth_timeff7c8b8
- auth: claim the manager stamp under the membership seam's own lock (d432721), closes #697
- auth: close the auth_time bound at both ends and pin the SAML skew1aece8a
- auth: keep the email-change tokens out of analytics, and make the lever honest223c3e5
- auth: preserve router history state on the scrub, and lock even when the restore losesd171536
- auth: require a live membership before the manager stamp is claimed (1ea775f), closes #697
- auth: take the residency-flip lock when a membership ENDS, not only when it starts (8b5cc1c), closes #697
- cli: a cleartext login refusal exits rather than degrading the launch (#781) (d882226), closes #752
- cli: a cloud launch no longer greys Start with "Preparing the model…"d39342f
- cli: a label names one Account per machine#752672f3c3
- cli: a refused control connect is Silent, and telemetry flushes before suspend659f69e
- cli: an Account's credential goes only to the host it recorded, over the scheme it recorded17e5b90
- cli: bound the BSD saturation loop in TIME, not only in countebeb42d
- cli: bound the credential-directory walk to this user's own space#752fc15ad9
- cli: bound the observer control round-trip so stop cannot hang#6868dfccce
- cli: canonicalise before judging, and pin what the command prints#752c589718
- cli: canonicalise CREWKIT_API_URL at one seam, and stop echoing it (d7b167b), closes #784 #785
- cli: canonicalise CREWKIT_API_URL at one seam, and stop echoing it (#784, #785)7392b8b
- cli: carry the credential-directory refusal onto the launch path#7525619a6b
- cli: carry the credential-directory refusal onto the launch path#7528016717
- cli: classify a refused control connect as Silent on every platform (99673ec), closes #720
- cli: close the pin's two-read window and drain the label-only pins (#775) (76eaa92), closes #752
- cli: correct the Remote Control notice's docs, scope and width#533feb1699
- cli: correct the Remote Control notice's docs, scope and width#53348d384c
- cli: describe a connection failure's base URL instead of echoing it (#785) (926e44b), closes #784
- cli: do not spend the cleartext warning on a request that is refused#754a9ac864
- cli: file a legacy vault only from a call made with its own credential (0b730d8), closes #753
- cli: flush buffered telemetry before the observer suspends itself (7536bdd), closes #687
- cli: fold the probe's refusal and canonicalisation into one seam#75258e3b4a
- cli: gate-3 findings — every login adds an Account, and nothing destroys on a guess (b072bf3), closes #711
- cli: guarantee the terminal restore, and bound the log when a stop is discarded (e432b17), closes #683
- cli: guard the credential directory by where it IS, not where we run#752d4f19a8
- cli: judge the cleartext host before the entry lookup, not after (#781) (9f9833a), closes #752
- cli: keep the registry secretless and quote the real --verify wait#7520a411be
- cli: locate the config dir instead of rebuilding it in account testscdcad1a
- cli: log why an unusable CREWKIT_API_URL is refused (#784) (ac9e62e), closes #785
- cli: make job control and its test harness report their own failures (10f22be), closes #683
- cli: never hand the shell back a raw terminal, and never spin on a discarded stop03a7e3c
- cli: one failed cloud request no longer costs the notetaker a whole window2ffbe70
- cli: pass the API URL where there is none to give, and keep the fragment checks (#785) (6f108a6), closes #784
- cli: pin a Notetaker meeting to an Account's identity, not its label#7752d038f0
- cli: pin a Notetaker meeting to an Account's identity, not its label (#775) (42ae3f1), closes #752
- cli: pin CREWKIT_ALLOW_CLEARTEXT to the deployments it names#754da3b1ec
- cli: prove the full-backlog precondition with each platform's own signal11e9c4b
- cli: re-validate before calling a silent observer running, bound the drain5428ca9
- cli: reach a stopped observer with SIGCONT, and bound the connect1e006f4
- cli: reach a stopped observer with SIGCONT, and bound the connect (30c6273), closes #685
- cli: record each Account's deployment URL and report --verify progress#7522012635
- cli: recovery no longer moves a spared-headset microphone onto the headset#639d707cc1
- cli: redact the deployment URL at every site that prints it#752f0db6b0
- cli: refuse /home and /Users as Directory rule prefixes#752febc57d
- cli: refuse a cleartext downgrade of an Account's own deployment8f72fd8
- cli: refuse a credential directory the repository chose#7526450865
- cli: refuse a non-UTF-8 API URL and canonicalise the web URL (#784) (0eca5b9), closes #785
- cli: refuse a Start the CLI could not confirm, and pin the token's holder (#775) (2cf18a3), closes #752
- cli: refuse an offsite cleartext login before the first request leaves#781b90f6de
- cli: refuse an offsite cleartext login before the first request leaves (#781) (37af18d), closes #752
- cli: refuse to send an Account's credential to a host it did not record (6908569), closes #754
- cli: register the legacy vault lazily; auth status stops clearing (ec91f53), closes #709
- cli: say what is wrong when the scheme, not the host, is the problem3493bff
- cli: say why Remote Control is missing when the gateway runs#5334c1e18c
- cli: send SIGTERM before SIGCONT at both sidecar stop paths1a74bc4
- cli: send SIGTERM before SIGCONT at both sidecar stop paths (85d9dbf), closes #721
- cli: stop the auth tests logging the developer out (#808) (d2a47bb), closes #752 #781
- cli: suspend the observer when claude stops, instead of spinning (40c11c6), closes #684
- cli: suspend the pair when claude stops, instead of hanging (a3b09e6), closes #683 #682
- cli: the health log says WHICH microphone outcome fired7cbf30a
- cli: the Model menu is "one of" — the cloud row and the local models are alternatives75f25cd
- cli: the notetaker probes its microphone at Start and falls through to a live input3703421
- cli: the notetaker retry test no longer races the macOS runnerd2510d0
- cli: the notetaker's two streams share one clock, so lines interleave as spoken22f0d03
- cli: whoami never removes a credential#75272f2fe1
- cli: write the Account-pin marker on the migration path too (#775) (ecac80a), closes #752
- dashboard: clear the copy-confirmation timers in install-tabs002c212
- dashboard: clear the copy-confirmation timers in install-tabs (3e3a022), closes #729
- dashboard: clear the React Doctor errors CI gates on the branch diff67419b5
- dashboard: de-flake the footer navigation test against smooth scrollinge607aa1
- dashboard: don't beat the versions card in beside a catalog errore939f99
- dashboard: keep the beta flag prerenderable when the build has no APIb362fff
- dashboard: omit the Turbopack-only cssChunking under Storybook18b0f26
- dashboard: reconcile the performance lanes on the public surfacef63845f
- dashboard: take the gate-3 review on the skills catalog and its project column1adbbb3
- dashboard: the SCIM rotation dialog promised 24 hours the code gives as a ceiling082c800
- dashboard: undo a half-written project turn-off, and drop two fillerscf73f6a
- sessions: an artifact erasure cancels the queued reply it would have sent#6723eb1f46
- sessions: bound the poll interval and pin the current_term caller set#656773d014
- sessions: kill the surviving mutant at the statement layer#672d2a318e
- sessions: name the residual composer race the status clause does not close#6724903191
- sessions: pin the reply egress terms and meter a delivered call at a floor#6557523c64
- sessions: split the outbox erasure by status, keeping the delivery record#6722a83565
- sessions: take the gate-3 findings on the expired-manifest veto#65645ec124
- sessions: take the gate-3 findings on the outbox erasure split#67201461d7
- sessions: veto agent replies on an expired policy manifest#656aa4c6bf
Performance Improvements
- api: apply a Kind 1 session page in one bound statement#660772265d
- api: apply a Kind 2 period page in one bound statement per chunk#6599072510
- cli: don't preload the local weights when the cloud engine is chosend49c53c
- dashboard: drive the public-site motion from CSS instead of JavaScript307f820
- dashboard: hoist the deferred Sentry and Lenis imports out of the componentscea3e91
- dashboard: keep the marketing routes light on first paintab39ca9
- dashboard: put the common performance floor under every route244f232
- dashboard: serve the login, shared and docs LCP from the prerendered shell51fad42
- dashboard: validate the public forms without a form libraryba07504
Code Refactoring
- api: delete the dead #reason, and lead every refusal with its action#654c2e3d9d
- api: make the security event's organization explicit, never guessede0636fa
- api: make the security event's organization explicit, never guessedfda9b4b
- api: one resolution loop in FirstPartyGroups, one shared bulk itemdaa29d7
- api: re-home the orphaned egress-vetoes doc block#617eab834e
- api: share the rollup receiver's query counter, cost mapping and id normalisation#657ea58971
- api: the destroy refusal reads the Essentials relation, minus publicationc32b6e7
- api: validate OIDC tokens against a configuration, not a row#787c7e08ea
- api: validate OIDC tokens against a configuration, not a row#7875a3b682
- api: write one ingest-receipt page per arm instead of one upsert per subject#6586bd51e1
- cli: drop ConnectionFailed's base URL so it cannot carry one (#785) (43df13b), closes #784
- cli: make the child guard the single owner of child-state observationc926d66
- cli: name the job-control decisions apart from the methods that delegate to them (c53917b), closes #683
- cli: split the job-control outcome that merged an absence with a failure (6e93e62), closes #683
- dashboard: take the public-site theme out of the URL and prerender the pagesadf2d0a
- sessions: correct the rung guard's justification and dedupe its pinsec53c18
- sessions: delete the org-level credential purge nothing called#6541c3de07
0.7.4
CompareBug Fixes
- cli: the live transcript tails instead of jumping to the top7cd81af
0.7.3
CompareBug Fixes
- api: accept the released Notetaker's capture id spelling#53050e6cae
- api: canonicalize the capture id before any reader, for every locus#530ce7cabc
- api: no-store on the token body, and prove the mint refusals over HTTP#5308ad3354
- api: the legacy-spelling flag rides on refusals too#5302fa5dc7
- cli: notetaker sends the capture id the mint allowlists#530311823f
- cli: the notetaker's cloud option says "Cloud", not the vendor49c096a
0.7.2
CompareFeatures
- api: add ElevenlabsTokenService for server-minted single-use Scribe tokens#530812f218
- api: add the cloud transcription mint ledger with advisory-locked daily caps#530724e9ec
- api: add the cloud transcription org sub-grant under local capture#530bf8786d
- api: add the cloud transcription token mint endpoint#530bb60ff2
- api: cloud transcription grant, ledger, token mint and upload controls#5302f2e03b
- api: control off-device transcripts at upload and expose the cloud capability#5301f241f9
- api: revoking local capture revokes the cloud transcription sub-grant#5303929461
- auth: bind SCIM tokens to an identity provider for provisioning (#588 3b)2b95424
- auth: name the provider and organization in the SSO pending blob for the consent page (#588 1g)3e8ed09
- auth: owner endpoints to mint, rotate and revoke SCIM tokens and to write group-role mappings (#588 3e api)0a600b6
- auth: SAML 2.0 login behind the SSO adapter seam, with certificate lifecycle and SP metadata (#588 stage 2)6126336
- auth: SAML adapter with the seven assertion checks behind the adapter seam (#588 2b)e9c9d58
- auth: SAML certificate overlap and assertion replay ledger (#588 2a)0e8bff6
- auth: SAML metadata refresh with certificate overlap, and certificate admin endpoints (#588 2c)24f2172
- auth: SCIM /Groups, role mappings with the manager ceiling, PATCH allowlist (#588 3c)edfbd64
- auth: SCIM /Users with the tokenised filter grammar (#588 3b)15798ce
- auth: SCIM 2.0 provisioning and deprovisioning with owner-managed tokens and role mappings (#588 stage 3)656c453
- auth: SCIM deprovisioning with the revocation set, throttle and audit (#588 3d)a394d1e
- auth: SCIM v2 base — token tenancy and discovery (#588 3a)e8274ff
- auth: SP metadata endpoint and SAML admin fields (#588 2c api)0de96b9
- cli: add the cloud disclosure variant seam to the notetaker capture crate#530251e7a6
- cli: add the ElevenLabs Scribe client and the single-use token pool#53048a121a
- cli: add the ElevenLabs Scribe engine behind the cloud arm#530eb3f55a
- cli: add the token-mint transport purpose and the cloud capability tri-state#53091b3f0e
- cli: ElevenLabs Scribe as a user-selected cloud transcription engine for the Notetaker#53070155ad
- cli: let the user select the ElevenLabs engine and thread one read through Start#530ed2c100
- cli: say where the audio goes in the tray and on the upload claim#5308dfed93
- dashboard: global SSO step-up interceptor and named consent screen (#588 1g)81fc333
- dashboard: identity-provider settings with domain verification and the enforce-SSO preflight (#588 1g)5d95038
- dashboard: SAML fields, SP metadata and certificate lifecycle on the provider form (#588 3e)b471797
- dashboard: SCIM tokens and group-role mappings on the SSO settings page (#588 3e)0ad0ae2
- dashboard: SCIM tokens, group-role mappings, and SAML certificate lifecycle on the SSO settings page (#588 3e)9862617
- dashboard: SSO callback and step-up consent pages (#588 1g)61a4f10
- dashboard: SSO settings, domain verification, enforce-SSO preflight, callback and consent pages (#588 1g)ef2543c
Bug Fixes
- api: answer 409 when a replay re-stamp finds the capture bound elsewhere#53010cc2d7
- api: give the cloud transcription events deliberate severities and one guarded publisher#5301dd15d1
- api: read ElevenLabs credentials with .presence, re-stamp captures on replay, floor Retry-After#530e75e231
- api: stamp the capture binding atomically with the artifact insert#53076e170c
- api: stub ElevenLabs credentials in tests; reap the erasure log the race test leaves#530e6fba3b
- api: take the gate-3 carries on the cloud transcription grant and ledger#530c7900eb
- api: take the gate-3 carries on the cloud transcription mint endpoint#530e79d16d
- api: take the stage security audit on cloud transcription#53028f8889
- auth: accept RelayState on the SAML callback, bind InResponseTo to the signed assertion, and harden the replay sweep (#588 2b)c4ab9f0
- auth: compare the SAML status code against the full Success URN3b86318
- auth: expose the certificate id the dashboard retires by (#588 3e)ea63794
- auth: issue the SSO refresh token as an HttpOnly cookie, not in the fragment (#588 1g)f4f9c98
- auth: make SCIM group writes atomic, scope /Users on identities so deprovisioned users stay addressable (#588 3b-3d)9d60acc
- auth: name the certificate refusal codes the dashboard explains (#588 3e)dd0ec8b
- auth: refuse to rotate a revoked SCIM token and bound the mapping resync (#588 3e api)dc00353
- auth: serve SP metadata per SAML provider, including before it is enabled (#588 3e)a67aa40
- cli: claim the locus the server allows, end an exhausted capture once, ask the cloud early#53005bb5a1
- cli: count only failed mint attempts and check the pool's clock arithmetic#530f44614d
- cli: follow Claude Code's own transcript path for tokens and keep the 5m/1h cache split3e2f204
- cli: make prime() the one mint, give the mint its own timeout, present through a trait#5304858863
- cli: notetaker cloud row says when the server would not answerdceaf9e
- cli: read the engine into a plan, present after the cloud checks, fail unknown versions loud#5309a76710
- cli: stamp the hook-bound transcript with its session; harden the Kind-1 and 1h edges9b2425a
- cli: take the gate-3 carries on the disclosure variant seam#530accb609
- cli: take the gate-3 findings on the token pool and the ElevenLabs client#5308170d8a
- cli: wait for the in-flight mint and classify the mint's transport failures#53053f2e3e
- dashboard: only follow step-up paths under the SSO namespace (#588 1g)6323bf9
- dashboard: per-provider SP metadata URL, certificate id required, PEM cap, secret cache reset on unmount (#588 3e)6e71ffc
- dashboard: release the SSO step-up latch when no navigation follows (#588 1g)333b727
- dashboard: render the login form once on the SSO branch (#588 1g)4a46a01
- dashboard: satisfy React Doctor on the SSO pages and stop rendering two email fields on /login (#588 1g)13c0ffe
- dashboard: settle auth before gating device-verify, confirm destructive SSO actions, pin the write-only secret (#588 1g)600cff7
- sessions: bound the int4 counters on the end, Task, plan and import routes5bd868c
- sessions: bound the summed token totals and the import route's conversation and Task counts9692c3b
- sessions: close the status vocabulary, bound client token counts, claim the split only if seen2993ed0
- sessions: correct conversation tokens and cost on every surface (gateway, transcript, remote control)98820d9
- sessions: land the plane's Kind-1 token totals and status counts on the conversationf74dd20
- sessions: make the plane's built-in rate table the Rails export, pinned by a sentineldb855bf
- sessions: name the field in every client-count 400 and refuse non-count valuesadb3833
- sessions: pin the rate tables both ways — CI path, regenerate task, Claude 3 aliases2e8bfbd
- sessions: price a Task's cache writes by its conversation's rule; tally rejection logs09c000d
- sessions: shape-check an import subagent's duration before to_f84ae314
0.7.1
CompareFeatures
- sessions: model-policy conventions enforced at PreModelSwitch (annotate and confirm)29312ca
0.7.0
Compare⚠ BREAKING CHANGES
- cli: `crewkit code -p` / `crewkit sidecar -p` and the orchestrator's cloud-job launcher now start claude with `--permission-mode auto --permission-prompts none` instead of relying on `--dangerously-skip-permissions`. The permission mode stays IN FORCE: deny rules, `permissions.ask` rules and the auto-mode classifier keep deciding, and anything that would still prompt is denied rather than auto-approved. A headless run whose deny rules were previously bypassed will now be stopped by them. Pass `--dangerously-skip-permissions` explicitly to keep the old posture. Requires claude >= 2.1.259; on older binaries both paths keep exactly their previous argv.
Features
- api: accept disclosure copy version 2026-09-04 ahead of the Notetaker that stamps it6b2e2ea
- api: accept disclosure copy version 2026-09-04 ahead of the Notetaker that stamps it423a883
- api: record model switches and resume cost on the session from hook events68e3af5
- api: serve per-user session tips and project conventions for the spinner48b6efc
- api: store per-session prompt-cache metrics from the observer (70f2778), closes #583
- cli: add subagent context file and --permission-prompts to the claude launch seam14693ec
- cli: capture prompt-cache metrics from the statusline and forward them to the sessionf8483a8
- cli: fetch the Notetaker's speaker model with the transcription modelfe1e3e5
- cli: forward PostModelSwitch/PreModelSwitch hooks and SessionStart resume costa9e7b88
- cli: give the Notetaker's Model menu three plain choices and keep the catalog under All models508236f
- cli: headless launches deny prompts under auto mode instead of skipping permissionsa214186
- cli: Notetaker UX round — screenshots, a curated Model menu, labelling by default, a live transcriptcf64476
- cli: show the Notetaker's transcript as it forms, in the review window, on its own routee4e0b96
- cli: surface crewkit tips in the Claude Code spinner (ac2e497), closes #585
- dashboard: show model switches and resume cost on the conversation page8a6cd25
- sessions: capture prompt-cache metrics from the Claude Code statuslinecd411df
- sessions: record model switches and resume cost from the new Claude Code hooks1b31903
- sessions: surface coaching tips and playbook conventions in the Claude Code spinner00fec46
Bug Fixes
- api: emit cache_metrics on shared sessions, write it without validations, keep the cache tip under the cap (48e6855), closes #583
- api: make the tip-bearing session filter real, derive the id key, drop the hand-rolled serializer2a01a96
- api: pin the cache-read invariant and drop the untested 5_1 spelling460dc11
- api: price Fable 5.1 cache reads at $0.25 and Sonnet 5 at $2/$10 list1c2f9a2
- api: price Fable 5.1 cache reads at $0.25/Mtok and Sonnet 5 at $2/$10 list7990025
- api: read resume fields at the event root, scope the switch lock, gate the serializer12b6829
- cli: bound the tips fetch, share the project config reader, pin no project writesc6a2e73
- cli: follow a Notetaker model download only to hosts the disclosure namesdecbb63
- cli: gate-2 carries — one refusal sentence, a named screen-capture risk, a pinned engine261ffcc
- cli: gate-3 carries — one recording predicate, a leaner live page, an explicit https rule369a0c5
- cli: keep the headless permission default inside the launch seam and make the orchestrator probe fall back0450d09
- cli: keep the LSP index in line with disk without the cliente820e43
- cli: keep the LSP index in line with disk without the clientb4615e0
- cli: keep the LSP reconcile parser, and drop a subtree in one commit292cc8a
- cli: let the LSP watcher thread finish, and make subtree drops cheapd57b5c2
- cli: let the Notetaker's transcript window be screenshotted3ed5e91
- cli: make the cache-sample round trip fire-and-forget and bounded, split the drop counters1ec5df7
- cli: refuse to replace a Notetaker bundle this user cannot move, before fetching ite791904
- cli: refuse to start the Notetaker on a language the model cannot servecc288ed
- cli: restore the set_context docs and pin the degraded withhold of --permission-prompts95c96bd
- cli: review nits — the language pairing checked on the weights, a walked sentinel, two docscdefe9a
- cli: security carries — one language read at Start, a download sentinel, the live predicate2127bd5
- dashboard: cap the model-switch sequence in the conversation meta rowcb841d1
- dashboard: correct platform and MCP claims in public copy (fa11d80), closes #587
- dashboard: stop the status page reporting a major outage when GitHub is unreachable96f6c5a
Code Refactoring
- cli: drop the SessionStart resume wrapper, the root fields already reach the API479650c
0.6.9
CompareFeatures
- cli: --passive launch mode — observe a session without writing to the checkout or injectinga447450
Bug Fixes
- api: bound the client-supplied version hashes to the column they land in48a96de
- cli: attribute a passive session to the resource version it actually loadsb0a2475
- cli: stamp the stale hash on the chain tier the server actually reads97c6989
- cli: take the QA findings on the passive stage0af29e0
- cli: take the S5 gate-3 findings899306e
0.6.8
Compare0.6.7
CompareFeatures
- cli: keep the Notetaker in lockstep and update it with crewkit updateb97f475
- cli: update the installed Notetaker with crewkit updatef68479b
- dashboard: bring the project sub-pages onto the design grammar7c0adc9
- dashboard: redesign the Inbox tray as a triage list6ec324f
- dashboard: redesign the marketplace, playbooks, runs and agents rosters3ffb0ad
- dashboard: redesign the project Documents library in the app grammar5c549b4
- dashboard: redesign the Team agents roster and plane install card918336a
- dashboard: shell-consistent loading fallbacks and sentence-case breadcrumbs across /kit1ee9bdd
- dashboard: sweep the resource, playbook, run and marketplace detail pages onto the design grammara8b2790
Bug Fixes
- cli: reap stale download directories only after the work directory is proved oursaddbad8
- cli: refuse a relative Notetaker work directory, and copy a payload across volumes2f64ab3
- cli: stage the Notetaker download where only its user can writea44cac8
- dashboard: allow React's dev-only eval in the CSP and stop instant-navigation noise under /kitd24a134
- dashboard: render playbook stats the API actually reportsb79c040
- sessions: a hard delete of a chunked artifact records one artifact_delete entry#5592e8b17f
- sessions: a hard delete of a chunked artifact records one artifact_delete entry, not a re_embed_replacement#559c09dcd5
0.6.6
CompareFeatures
- api: accept the Notetaker's labelling-stop and speaker-cap claims#55523334b9
- api: stamp each transcript line with the wall clock in the meeting's zone369c379
- cli: show the wall clock on every transcript line and send the capture's local offset24196d5
- sessions: data-plane v1 stage F — Phase B residentbd48aed
- sessions: data-plane v1 stage F — Phase B resident#556bd48aed
0.6.5
CompareFeatures
Bug Fixes
- cli: a live project status, and a recovery notice repaints cannot clobbere3b7b27
- cli: gate-2 findings — the caveat names the labels, one download host, a live switch623cced
- cli: last carries — an unidentified-speaker label, a counted shortfall, a wider scan8e4b325
- cli: no guessed speakers, labeller counters reach the log, spectrum zeroized for real70972d0
- cli: refuse notetaker install off-macOS instead of prescribing a download2317bdd
- cli: review carries — reachable attribution, fail-closed switch, one writer8fd7a5d
- cli: review findings — the notice spares refusals, the disclosure names every scopec326f61
- cli: third-wave carries — a verifier witness, self-checking sentinels, a content-shaped caveat00e6533
- dashboard: tell the truth about repository access and storage#519a0a4619
0.6.4
CompareFeatures
- sessions: data-plane v1 stage E — The line + readscfdd635
Bug Fixes
- cli: ask for the microphone at launch instead of hiding it in a menu6aede4a
- cli: declare the audio-input entitlement the hardened runtime requires52b252d
- cli: declare the usage string the system-audio tap prompt requiresfa1f3c3
- cli: harden the audio-entitlement check, and hop the mic repaint to the main threaddab75bd
- sessions: close the E-x-main integration seams PR CI exposedba64922
0.6.3
CompareFeatures
Bug Fixes
0.6.2
CompareShowing the 20 most recent releases. Older releases are on GitHub.