P3 review: P2 can read the books until the owner consents
check / check (push) Canceled after 0s

A schedule-convention setting, the two new tax categories, a disposal
before the in-service date and a depreciation catch-up each need their
feature now (tax_categories_gain_exempt, disposal_before_service,
depreciation_catch_up), so no write before consent leaves books P2 refuses
or misreads; replayed names are read with P2's TIN detector (B-28). The
cutover runs end to end through the real P2 and P3 binaries in a test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T3gXMVt7XJPi6ens1or9Dj
This commit is contained in:
swaitsandClaude Opus 5.5 committed 2026-10-21 17:43:45 -06:00
1 parent 6288ead747
commit 2c5b5a7171
78 files changed
+1375 -4

No files matched your search

+8
View File
@@ -6017,6 +6017,14 @@ impl BooksServer {
self.settings().company.tax_form,
)
.map_err(|e| format!("{}: {e}", row.code))?;
// A category an earlier version doesn't know waits for the
// books' format upgrade: refused here, with the file whole,
// never after the rows before it were written.
if let Some(f) = ledger_store::format::tax_category_feature(cat) {
store
.ensure_feature(f)
.map_err(|e| format!("{}: {e}", row.code))?;
}
scratch
.set_account_tax(id, Some(cat), None)
.map_err(|e| format!("{}: {e}", row.code))?;