docs: P4b S4.2 landed; S4.3 owes the guard removal and the number lock

This commit is contained in:
swaits committed 2026-10-27 03:46:51 -06:00
1 parent bf91c5a7c2
commit d5385a7ee9
2 files changed
+21 -1

No files matched your search

+20
View File
@@ -124,6 +124,26 @@ bookspec examples `payment-terms-due-date` and
`invoice-numbers-run-and-voids-keep-theirs` remain owed by a later S4 `invoice-numbers-run-and-voids-keep-theirs` remain owed by a later S4
slice, since P13's checker now takes an unknown key as an error. slice, since P13's checker now takes an unknown key as an error.
**2026-10-27: P4b S4.2 landed (`bf91c5a7`).** The invoicing, bills and
company-contact settings are journaled keys (eleven of them) with the new
`Kind::{Count, Terms, PaymentMethods}`, and a party can carry an email and
default terms as customer and as vendor. `documents_v2` exists early —
its constant, `KNOWN_FEATURES` entry and `documents_v2_is_its_own_feature`
landed here because the party and settings writes must call
`ensure_feature`; **S4.3 must not redeclare them**, and it owns the
document write call sites, schema 16 and the byte-for-byte test. The
branch's stub `Terms` was deleted at the rebase; `arap.rs` is S4.1's
alone, and `settings::Kind::Terms` canonicalizes through `Terms::parse` /
`describe`. `LedgerError::FirstNumberLocked` exists as the contract only:
**S4.3 enforces it at `set_setting`**. The 8.0.6 work is in the branch: a
hand-written new-shape line in `books_written_under_older_rules_still_open`,
the `p4_s42_settings_parties` old-books fixture written by `1bfce915`, the
`invoicing.default_terms` refusal in `books_p2_served_cut_over_whole`, and
`documents_v2_is_its_own_feature`; no figure or golden moved. One test
adaptation, not a weakening: `terms_keep_one_canonical_spelling` now
asserts that `Due 2026-1-5` is accepted and stored as `Due 2026-01-05`,
which is S4.1's `Terms::parse`.
The 2026-10-16 audit of the first company's books (62 verified findings, The 2026-10-16 audit of the first company's books (62 verified findings,
20 engine defects) and the design discussion that followed produced 20 engine defects) and the design discussion that followed produced
+1 -1
View File
@@ -815,7 +815,7 @@ One row per unit of work. A unit is what one engineer takes into one git worktre
| U0a | Split `server.rs` by tool group | not started | none | U0b, U0c, S4.1, S4.2, S7.1 (core steps only) | none | 3-4 | | U0a | Split `server.rs` by tool group | not started | none | U0b, U0c, S4.1, S4.2, S7.1 (core steps only) | none | 3-4 |
| U0b | The attention engine over `PackageBooks` | not started | none | U0a, U0c, S4.1, S4.2 | none | 4-6 | | U0b | The attention engine over `PackageBooks` | not started | none | U0a, U0c, S4.1, S4.2 | none | 4-6 |
| U0c | `docs/testing.md` sections for S1-B, S2, S3; `docs/mcp-interface.md` cleanup of stale P4b notes | landed 2026-10-26 (`198aa2a1`) | none | everything | none | 0.5-1 | | U0c | `docs/testing.md` sections for S1-B, S2, S3; `docs/mcp-interface.md` cleanup of stale P4b notes | landed 2026-10-26 (`198aa2a1`) | none | everything | none | 0.5-1 |
| P4b S4 | `documents_v2`: numbers, terms, line accounts, snapshots, preview and confirm, the issued PDF filed, party email and terms, invoicing settings | in progress: S4.1 landed 2026-10-27 (`13282cf8`); S4.2-S4.5 open | S4.1 and S4.2 need nothing; S4.3 needs S4.1, S4.2; S4.4 needs U0a, S4.3; S4.5 needs S4.4 | S5 (after S4.2), S7 (core after S1), P6, P9a, P11a, P13 | `documents_v2` (one upgrade after S7, D-52) | 12-16 | | P4b S4 | `documents_v2`: numbers, terms, line accounts, snapshots, preview and confirm, the issued PDF filed, party email and terms, invoicing settings | in progress: S4.1 landed (`13282cf8`), S4.2 landed 2026-10-27 (`bf91c5a7`); S4.3-S4.5 open | S4.1 and S4.2 need nothing; S4.3 needs S4.1, S4.2; S4.4 needs U0a, S4.3; S4.5 needs S4.4 | S5 (after S4.2), S7 (core after S1), P6, P9a, P11a, P13 | `documents_v2` (one upgrade after S7, D-52) | 12-16 |
| P4b S5 | Sent tracking | not started | S1; S4.2 for the defaults (works without it, see the unit) | S4.3 onward, S6 | `documents_v2` | 3-4 | | P4b S5 | Sent tracking | not started | S1; S4.2 for the defaults (works without it, see the unit) | S4.3 onward, S6 | `documents_v2` | 3-4 |
| P4b S6 | Paying on terms: multi-document payments, discounts, the processor fee, bills due, aging exports | not started | S4.1 (`Terms`), U0a | S5, S7, P6 | `documents_v2` | 8-10 | | P4b S6 | Paying on terms: multi-document payments, discounts, the processor fee, bills due, aging exports | not started | S4.1 (`Terms`), U0a | S5, S7, P6 | `documents_v2` | 8-10 |
| P4b S7 | Bad debts (write-offs) | not started | S1; S4.3 for the same-call evidence attach; U0a | S4.4 onward, S5, S6 | `documents_v2` | 4-6 | | P4b S7 | Bad debts (write-offs) | not started | S1; S4.3 for the same-call evidence attach; U0a | S4.4 onward, S5, S6 | `documents_v2` | 4-6 |