6eaccec7ac
- migrations/0002_categories_v2.sql, byte-identical to contracts/schema/migrations/0002_categories_v2.sql (SPEC §14.1.1), with an identity test; SCHEMA_VERSION = 2 (E-1 reports it, the importer's check follows). - Seed test on a fresh database (the fourteen rows of AC-7.2, server_version 11 to 14) and an upgrade test of a v1 database in use (0001 applied through the migrator, then users, a custom, a renamed and an archived default, an account, a recurring template, expenses): every earlier row unchanged, the four rows above the old sequence, foreign_key_check empty, schema_version 2, a pull from the old cursor returns exactly the four rows. - DefaultCategoryKey with the fourteen keys (wire enum and contracts/openapi.yaml); icons 33 and colours 14 (§9.7) in validation. - The two category examples M12a held back (E-26 response-default, sync/pull-page-categories-v2) and its contracts-check patch for them and the enum. - Importer: splitwise_categories.csv per the §10.8 v0.8 table (D-053), DEFAULT_KEYS of fourteen, synthetic fixtures for the finer mapping (Insurance/Försäkringar to insurance among them), a schema-1 refusal test. - Test harnesses seed users at server_version 15/16 (after the fourteen seeds); pull counts 10 -> 14. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TQd3pEP9UeN2uifbHknQ7B
68 lines
1.7 KiB
JSON
68 lines
1.7 KiB
JSON
{
|
|
"epoch": "30b85fb529aac0016dc91650841005b9",
|
|
"since": 921,
|
|
"next_since": 925,
|
|
"has_more": false,
|
|
"server_time": "2026-10-25T12:00:05.000Z",
|
|
"users": [],
|
|
"categories": [
|
|
{
|
|
"id": "01920000-0000-7000-8000-000000000011",
|
|
"default_key": "housing",
|
|
"name": null,
|
|
"icon": "key",
|
|
"color": "indigo",
|
|
"sort_order": 25,
|
|
"created_at": "2026-10-18T00:00:00.000Z",
|
|
"updated_at": "2026-10-18T00:00:00.000Z",
|
|
"archived_at": null,
|
|
"deleted_at": null,
|
|
"server_version": 922
|
|
},
|
|
{
|
|
"id": "01920000-0000-7000-8000-000000000012",
|
|
"default_key": "insurance",
|
|
"name": null,
|
|
"icon": "shield",
|
|
"color": "slate",
|
|
"sort_order": 45,
|
|
"created_at": "2026-10-18T00:00:00.000Z",
|
|
"updated_at": "2026-10-18T00:00:00.000Z",
|
|
"archived_at": null,
|
|
"deleted_at": null,
|
|
"server_version": 923
|
|
},
|
|
{
|
|
"id": "01920000-0000-7000-8000-000000000013",
|
|
"default_key": "children",
|
|
"name": null,
|
|
"icon": "child_care",
|
|
"color": "lime",
|
|
"sort_order": 85,
|
|
"created_at": "2026-10-18T00:00:00.000Z",
|
|
"updated_at": "2026-10-18T00:00:00.000Z",
|
|
"archived_at": null,
|
|
"deleted_at": null,
|
|
"server_version": 924
|
|
},
|
|
{
|
|
"id": "01920000-0000-7000-8000-000000000014",
|
|
"default_key": "fees",
|
|
"name": null,
|
|
"icon": "account_balance",
|
|
"color": "amber",
|
|
"sort_order": 95,
|
|
"created_at": "2026-10-18T00:00:00.000Z",
|
|
"updated_at": "2026-10-18T00:00:00.000Z",
|
|
"archived_at": null,
|
|
"deleted_at": null,
|
|
"server_version": 925
|
|
}
|
|
],
|
|
"accounts": [],
|
|
"recurring_templates": [],
|
|
"expenses": [],
|
|
"settlements": [],
|
|
"audit_entries": []
|
|
}
|