You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
auth: a device-flow provider carries a public client_id and no secret (bcda354)
auth: device-flow login views — the browser polls, the pipeline decides (e3905b0)
auth: GitHub device-flow token acquisition — a secretless public client (bdb6c72)
cares: operator arming switch for a collector's reconcile authority — cares.arm_reconcile, audited, off by default (Issue# 655) [via double-tap-git-serious] (17d4a61)
cares: the operator arming switch — cares.arm_reconcile gates tap_cares.services.arm_reconcile, which sets a collector's reconcile authority and budget as the collector program actor through the trusted-internal patch on an audit batch of its own (operator, before, after, when); manage.py arm_reconcile <registry> --on|--off [--budget N] --as <username>; off stays the default (2246d86)
cicd: a version tag requires no fixable High/Critical vulnerability [re-target to main] (be8eccb)
cicd: plugin CI submits the plugin's own dependency closure, so Dependabot can see it (c51bd46)
cicd: plugin CI submits the plugin's own dependency closure, so Dependabot can see it (69fee0c)
grid: manage.py export_grift — serialise a live grid to a re-importable GRIFT batch (0ca266b)
grid: manage.py export_grift — serialise a live grid to a re-importable GRIFT batch (b3114e0)
grid: the cascade corpus drives the reconcile verb — a reconcile operation (observed, dropped, budget) builds the run's write batch, completeness statement, candidate record and armed authority from the scenario graph, a fake source answers the probe, and the model oracle and the runner both check applied / contradicted / not_applicable outcomes; four scenarios pin the contradiction rule beside the cascade it would trigger (Issue# 662 - tap) (1be584d)
grid: the cascade corpus drives the reconcile verb — contradiction, cap, applied and present scenarios (Issue# 662) [via double-tap-git-serious] (8d0ef6c)
guards,skills: architecture.md gets a fitness guard and an update-architecture walkthrough (b621d36)
tap_cares: generic run_with_ceiling() for any collector's blocking calls (06b8e73)
tap_cares: generic run_with_ceiling() for any collector's blocking calls [via gsdt] (ff7dee1)
tap_cares: name the run_with_ceiling worker thread per caller (5d04cf9)
Bug Fixes
auth: authorize GitHub accounts by numeric id only, never the login (daaa001)
auth: keep exception detail in the log, not in the device-flow response (65c624e)
auth: make both identity writes unconditional, and turn PKCE on (6c15062)
auth: no empty-secret literal; narrow nosec on two false positives (379321a)
auth: redact the refusal path; report an unruled route as a security FLAW (a3cd50a)
auth: report an unrecognised client_id as such, not as a malformed response (68cc6ac)
auth: rule on provider routes too — the last inherit-by-default path (765e798)
boot: bump github_core to v0.10.0 with git_core v0.1.1 — the dependencies and the dependent move together (afef58e)
boot: profiles carry github_core's sibling plugins, in dependency order (ab4cf87)
boot: profiles carry github_core's sibling plugins, in dependency order (97eda72)
cares: the arming switch is one locked transaction (Collector row FOR UPDATE, audit batch closed with the write); the audit names the shell's OS user beside the claimed operator; a call with no actor is refused before any read; the requirement row is -12 (the -11 id was already taken) (review round 1, PR# 665 - tap) (96e0511)
cicd: drop the snapshot CLI's --out — an argv-supplied write path it never needed (dcb1d94)
grid: drop the TYPE_CHECKING Edge the runtime imports already bind (9b7ef92)
grid: export_grift — a derived serialisation time, and close the skip ledger over edge spine rows (caa4621)
grid: export_grift — one snapshot, a clean stdout, and tests for the command (57581e1)
grid: export_grift writes the snapshot 0600, not at the ambient umask (87f78d2)
grid: the reconcile corpus runner holds every batch but the lifecycle batch to the exact-state invariant, allows exactly the verb's one write batch as new, asserts the present scenario probed the source exactly once, checks the contradiction's count, and raises instead of asserting (review round 1 + Codacy, PR# 673 - tap) (757784e)
guards: drop the illustrative RID from the architecture guard — check-rids reads it as a citation (3e8141e)
guards: the architecture guard raises AssertionError instead of asserting (6ef1faf)
guards: the vacuity detector learns the raise-based no-op shape (d6585fb)
health: bound probe detail to the exception type, never its message (90c8503)
health: bound probe detail to the exception type, never its message (f6c0b8d)
health: close two AI-review findings on the leak guard (481c7a0)
health: give the raising test probe a real probe signature (mypy ratchet) (32e47c0)
plugins: only the absent tap_plugin namespace reads as not-installed — an import error from inside an installed namespace still raises; the module's implements claim re-stamped (review round 1, PR# 667 - tap) (c4d6c87)
plugins: validate_plugin reads a missing tap_plugin namespace as "dependency not installed here" instead of crashing — find_spec on a dotted name imports the parent first, and the conformance lane's tooling venv holds no plugin at all (found on PR# 154 - tap-plugin-github-core under tap v0.2.0) (834bbda)
plugins: validate_plugin treats a missing tap_plugin namespace as a dependency not installed here, not a crash (Issue# 666) [via double-tap-git-serious] (832d910)
tap_cares: name the idempotency constraint the ceiling contract was missing (5c27aef)
triage: jq --arg instead of filter interpolation; test sources a file, not a process substitution (7353272)
triage: say which commit an AI verdict covers, and call a stale one stale (18f103d)
triage: say which commit an AI verdict covers, and call a stale one stale [via triage-sha] (d1a55ef)
web: regenerate tailwind.css — #619's merge blocker was never cleared (a24a869)
web: regenerate tailwind.css — the merge blocker on #619 was never cleared (1c22928)