446d6da0d7
fix(snippets): an annotated record is not a diverged one — a standing verdict vouches at its commit (#2782)
bvandeusenandClaude Fable 52026-08-23 22:36:04 -04:00
136dbc16a6
Merge pull request 'Dead CSS deleted, and the instrument that found it sharpened (#2962, #2970)' (#129) from dev into main
bvandeusen2026-08-23 21:34:17 -04:00
57f6982f56
test(ledger): the transition/prefix references clear the flag end to end; plugin 0.1.45 (#2970)
bvandeusenandClaude Fable 52026-08-23 21:30:21 -04:00
4179f3e560
refactor(frontend): the second sweep — scoped rules that no longer match their own template (#2962)
bvandeusenandClaude Fable 52026-08-23 21:21:43 -04:00
c5faaf38fb
refactor(frontend): delete the dead CSS the consumer map surfaced — 102 classes, 588 lines (#2962)
bvandeusenandClaude Fable 52026-08-23 21:16:06 -04:00
649fdff2ea
Merge pull request 'The CSS pay-down: 72 name families derived or dismissed with the consumer map in hand (milestone 302 step 4)' (#128) from dev into main
bvandeusen2026-08-23 21:03:33 -04:00
9190fa0f10
refactor(frontend): the pay-down edits the first script dropped after its assertion stop — SharedWithMe/ProjectView page-header+empty-msg remainders, DesignSystems/Settings field-hint+.input trims, pane form-buttons deletions (milestone 302 step 4)
bvandeusenandClaude Fable 52026-08-23 17:34:07 -04:00
6fb0cb38a5
refactor(frontend): CSS pay-down, derive batch (milestone 302 step 4) — page-header, error-msg/state-msg/empty-msg, empty-title/empty-sub, required, field-hint recipes into components.css; form-buttons into rules-shared.css; scoped copies trimmed to remainders/overrides; the three views' .input becomes fs-input + width/box-sizing remainder (canon #2336)
bvandeusenandClaude Fable 52026-08-23 17:30:43 -04:00
cba542a3ec
Merge pull request 'Hooks say when Scribe didn't answer; the CSS consumer map (milestone 302 steps 1–3)' (#127) from dev into main
bvandeusen2026-08-23 14:18:32 -04:00
c28c87c39e
test(ledger): the consumer-map integration test owns its unreferenced rule — the seeded button.css row vanishes under the test's own tree (#2936)
bvandeusenandClaude Fable 52026-08-23 14:09:04 -04:00
8664d8ad14
feat(ledger): the consumer map surfaces — every css row carries used_by on list_shapes, flag="unused-css" (the map's negative space, surfaced never deleted), derive groups and the write-path family carry consumers, the derive line says "used by N template(s)", coverage payload unused_css + the standing block; docs, SKILL, plugin 0.1.44; the two step-2 tests expected 5 edges where fan-out makes 6 (milestone 302 step 3, #2936)
bvandeusenandClaude Fable 52026-08-23 14:03:35 -04:00
ffbdf19116
feat(ledger): the CSS consumer map — code_shape_consumers edges (shape → file whose markup names the class, count), migration 0086, resolve_consumers (own-file row when the template defines the class, else every other definition), sync_repo_consumers rebuilt from the archive on every refresh, consumers_of; derived, so not backed up (milestone 302 step 2, #2935)
bvandeusenandClaude Fable 52026-08-23 13:59:55 -04:00
dffbf43d84
feat(coverage): class_references + scan_archive — each template-bearing file's class tokens (static class=/className=, Vue :class object/array/ternary, React className={…}, Svelte class:x) read in the same tar walk as definitions; the CSS consumer map's extractor (milestone 302 step 1, #2934)
bvandeusenandClaude Fable 52026-08-23 13:57:13 -04:00
31383bcebe
test(hooks): the two tests that read a refused connection as "nothing recorded" now answer through a sink, and the silence case removes the shape it had left behind (#2932)
bvandeusenandClaude Fable 52026-08-23 11:05:42 -04:00
0ab94b2a00
fix(plugin): write-path hooks say when Scribe did not answer — once per outage, shared marker, record nudge withheld on an unanswered call; check_plugin allows exactly that line when unreachable; plugin 0.1.43 (#2932)
bvandeusenandClaude Fable 52026-08-23 10:59:54 -04:00
9c00a4b6e1
fix(plugin): after-write hook waits 8s on the prior-art call — a cold-start round-trip (~4.6s after a redeploy) failed open at 4s and dropped the ledger line on the first write; plugin 0.1.42
bvandeusenandClaude Fable 52026-08-23 01:06:08 -04:00
144192754c
Merge pull request 'Derive pay-down + CSS families by name (milestone 299 steps 5–6, note #2917)' (#126) from dev into main
bvandeusen2026-08-23 00:32:07 -04:00
85111442a6
feat(ledger): CSS derive families are names, never bodies — name floor 2 for css, dup: grouping sym-only; derive line says "repeated name" and dismisses scoped-css; plugin 0.1.41 (note #2917)
bvandeusenandClaude Fable 52026-08-23 00:21:17 -04:00
a2b377b74d
chore(plugin): 0.1.40 — the extractor rule change in scribe_defs.sh ships to the executing cache (#2904)
bvandeusenandClaude Fable 52026-08-22 15:12:54 -04:00
590203a293
refactor(tests+frontend): one http_sink helper for the hook tests; apiErrorMessage replaces ten hand-rolled error-body parses; type X, import specifiers are not definitions (#2904, milestone 299 step 6)
bvandeusenandClaude Fable 52026-08-22 15:07:23 -04:00
449f437048
refactor(frontend): the near-duplicate report rules shared via dup-report.css — KnowledgeView and SnippetListView carried identical scoped copies (#2903, milestone 299 step 5, part 2)
bvandeusenandClaude Fable 52026-08-22 15:03:12 -04:00
48f0630dab
test(coverage): the two-declaration floor check compares two multi-line rules — formatting is part of the fingerprint, as before (#2903)
bvandeusenandClaude Fable 52026-08-22 14:59:38 -04:00
a72605de8f
refactor(frontend): the last pay-down, part 1 — three dead views deleted, editor rules shared, .page-container + .fs-input canon, rules-shared.css; a one-declaration CSS body is not a shape (#2903, milestone 299 step 5)
bvandeusenandClaude Fable 52026-08-22 14:55:28 -04:00
4fa8158329
Merge pull request 'Self-surfacing DRY — duplicate families named at the write and on arrival, tool-agnostic (milestone 299 steps 1–4)' (#125) from dev into main
bvandeusen2026-08-22 13:41:24 -04:00
10687120a5
docs(self-surfacing): derive groups are drift not audit material — shape-accounting + reusing-code skills, static floor, plugin README (after-write hook), api-reference rows (#2902, milestone 299 step 4)
bvandeusenandClaude Fable 52026-08-22 13:38:06 -04:00
b88225eeb3
fix(hooks): after-write dedups its channel files; prior-art tests follow the extractor and skip list into scribe_defs.sh (#2901)
bvandeusenandClaude Fable 52026-08-22 13:38:06 -04:00
5925335ca0
feat(plugin): after-write hook — PostToolUse on Bash diffs the working tree and runs the prior-art + ledger arms on what was just written; shared scribe_defs.sh; plugin 0.1.39 (#2901, milestone 299 step 3)
bvandeusenandClaude Fable 52026-08-22 13:35:45 -04:00
2324c15418
feat(write-path): the derive arm — the hint names a duplicate family (no canon) or a canon elsewhere for the shapes being written; exclude_derive channel (#2900, milestone 299 step 2)
bvandeusenandClaude Fable 52026-08-22 13:30:33 -04:00
bb242ca566
feat(coverage): the line names standing work with 0 unclassified + derive_new, copies that joined a family since the previous refresh (#2899, milestone 299 step 1)
bvandeusenandClaude Fable 52026-08-22 13:27:29 -04:00
c0caf7d23a
Merge pull request 'Project inception — decide what a new project inherits (milestone 297)' (#124) from dev into main
v26.08.22.1
bvandeusen2026-08-21 22:16:32 -04:00
10c63f49d8
fix(mcp): _INSTRUCTIONS back under the 2k fold — the inception line is one clause, detail lives in the tool docstrings (#2882)
bvandeusenandClaude Fable 52026-08-21 22:10:28 -04:00
34734bf84a
feat(inception): services/inception.decide() + current_defaults(); the standard Systems vocabulary moves to the service and seeds at inception (#2881, milestone 297 step 3)
bvandeusenandClaude Fable 52026-08-21 22:03:02 -04:00
5415bff85c
Merge pull request 'fix(ledger): one-line CSS fingerprints; proposer writes uses edges for judged rows (#2877)' (#123) from dev into main
v26.08.21.2
bvandeusen2026-08-21 17:39:48 -04:00
aba16583ab
fix(ledger): one-line CSS rules fingerprint their own declarations; the proposer writes uses edges for judged rows too (#2872, #2870)
bvandeusenandClaude Fable 52026-08-21 17:34:12 -04:00
f0c915a6bc
Merge pull request 'Ledger follow-ups from the shape audit (milestone 294: #2868–#2874)' (#122) from dev into main
v26.08.21.1
bvandeusen2026-08-21 15:24:03 -04:00
1209e1c2d9
feat(ledger): a repo binding names the branch its ledger follows — bind_repo(ref=) (#2873, milestone 294)
bvandeusenandClaude Fable 52026-08-21 15:10:54 -04:00
57d68c9355
feat(ledger): derive readout ranks body-identical groups first; CSS fingerprints are declarations, not selectors (#2872, milestone 294)
bvandeusenandClaude Fable 52026-08-21 15:08:57 -04:00
1126bbe84f
test(ledger): the divergence acceptance case uses TS canon — proposer v3 gates sym bases by language family (#2871)
bvandeusenandClaude Fable 52026-08-21 15:07:48 -04:00
1ab614bfbe
feat(ledger): the scoped bucket — by-construction one-offs are stamped by the sync, not judged by a person (#2869, milestone 294)
bvandeusenandClaude Fable 52026-08-21 15:06:52 -04:00
9abc4443fb
feat(ledger): audit surfaces — list_shapes(compact=True) and classify_shapes_by_rule, the sweep form of a judgment (#2868, milestone 294)
bvandeusenandClaude Fable 52026-08-21 15:02:55 -04:00
3a4031d7f8
fix(ledger): proposer v3 — sym bases gated by language family, reference skips generic verbs, semantic held to the shape's own project (#2871, milestone 294)
bvandeusenandClaude Fable 52026-08-21 15:00:48 -04:00
141246ac2c
Merge pull request 'fix(frontend): drop the three .modal-overlay copies left after the modal canon move' (#121) from dev into main
bvandeusen2026-08-21 12:58:25 -04:00
520381e22b
fix(frontend): drop the three .modal-overlay copies the comment-preceded rule regex skipped — components.css owns it (#2831)
bvandeusenandClaude Fable 52026-08-21 12:52:29 -04:00
58c074a324
Merge pull request 'Shape audit (milestone 296): tests helpers, alembic, models, MCP, routes, services, frontend consolidation' (#120) from dev into main
bvandeusen2026-08-21 12:48:08 -04:00
2a6c55dacb
refactor(frontend): auth-shared.css, apiErrorMessage, one date helper per shape, modal canon in components.css — the frontend pass of the shape audit (#2831#2832, milestone 296)
bvandeusenandClaude Fable 52026-08-21 12:41:18 -04:00
7d48eb0b1b
refactor(services): one periodic-task shape, one APScheduler job shape, one token hash, one summary rule — the services pass of the shape audit (#2830, milestone 296)
bvandeusenandClaude Fable 52026-08-21 12:34:28 -04:00
92e38ff17b
test(routes): the prior-art contract guards read the handler plus its _project_scope helper (area 5 follow-up)
bvandeusenandClaude Fable 52026-08-21 11:26:01 -04:00
64c641ce80
refactor(routes): one supersession seam for REST and MCP; PUT/PATCH notes share a handler; shared mask/not-found/caller helpers (#2829, milestone 296 area 5)
bvandeusenandClaude Fable 52026-08-21 11:23:47 -04:00
c211e12b61
refactor(mcp): one rules_payload() for every surface that hands rules to an agent; drop the dead bearer resolver (#2828, milestone 296 area 4)
bvandeusenandClaude Fable 52026-08-21 11:20:36 -04:00
b0eda32575
refactor(models): one iso() for every to_dict timestamp; mixins replace hand-rolled created_at/updated_at (#2827, milestone 296 area 3)
bvandeusenandClaude Fable 52026-08-21 11:17:42 -04:00
77bb3729a3
refactor(tests): per-model fakes, FakeMCP and session mocks come from tests/helpers (#2825, milestone 296 area 1, batch 2)
bvandeusenandClaude Fable 52026-08-21 11:13:17 -04:00
ac6f248bf9
Merge pull request 'Shape audit area 1 — tests/: one definition each for the copied fixtures and fakes (#2825)' (#119) from dev into main
bvandeusen2026-08-21 11:07:11 -04:00
bbee0d0db1
refactor(tests): one definition each for the copied fixtures and fakes (#2825, milestone 296 area 1)
bvandeusenandClaude Fable 52026-08-21 11:03:48 -04:00
ac1c2625af
Merge pull request 'fix(ledger): proposer precision — own-definition signatures, semantic floor 0.8, ruleset version' (#118) from dev into main
bvandeusen2026-08-21 08:27:27 -04:00
dad56a51bd
fix(ledger): the proposer matches signatures against a canon's own definition only and floors semantic at 0.8; ruleset version re-examines standing proposals
bvandeusenandClaude Fable 52026-08-21 07:42:12 -04:00
79f0283608
Merge pull request 'Shape ledger steps 5–7: write-path stamping, mechanical proposer, divergence readout (#2791, #2792, #2793)' (#117) from dev into main
bvandeusen2026-08-21 07:32:23 -04:00
efc650390e
fix(plugin-context): the empty write-path payload carries the divergence key too
bvandeusenandClaude Fable 52026-08-20 23:19:00 -04:00
d74a244b3a
feat(ledger): divergence readout — button B where button A is canon, shape history, and judged-shape recheck (#2793, milestone 294 step 7)
bvandeusenandClaude Fable 52026-08-20 23:13:39 -04:00
386b27e422
fix(ledger): the proposer prefers a same-project canon on a tie — family canon elsewhere is the fallback, not the first hit
bvandeusenandClaude Fable 52026-08-20 21:36:10 -04:00
ba0030e51d
feat(ledger): mechanical proposer — every refresh proposes instances against canon and groups derive-first candidates; agents confirm in batches (#2792, milestone 294 step 6)
bvandeusenandClaude Fable 52026-08-20 21:30:35 -04:00
a9e1cddba7
fix(tests): provisional ledger rows carry the empty seen-marker default, not NULL
bvandeusenandClaude Fable 52026-08-20 20:23:12 -04:00
475f0857c9
feat(ledger): write-path stamping — a pulled canon the session then instantiates lands as a hook instance row (#2791, milestone 294 step 5)
bvandeusenandClaude Fable 52026-08-20 20:19:45 -04:00
9d5b89d785
Merge pull request 'Coverage self-seeds + refresh_pattern_coverage tool + shape-accounting skill (#2802)' (#116) from dev into main
bvandeusen2026-08-20 19:05:48 -04:00
3e21978a9c
fix(tests): restore the assert my seed-test insertion orphaned from its neighbor
bvandeusenandClaude Fable 52026-08-20 08:24:05 -04:00
fd101d24ae
Merge pull request 'Shape ledger steps 1-4 + direct-minting Systems bootstrap (milestone 294, #2798)' (#115) from dev into main
bvandeusen2026-08-19 21:24:40 -04:00
eb760eb440
fix(snippets): read the stored provenance before writing the fresh stamp into the response
bvandeusenandClaude Fable 52026-08-16 12:53:34 -04:00