M12e: contract pass (pair invite kind, admin name in invite links, sync failed flag, rejection actor, device version name, template id, update check result, untouched accounts, D-027 re-stamp, PushEvent in :core:model, snackbar hosts)
Server: E-3 invite_kind; E-12 link ?from=<admin name>, E-4 passes it into kvitt://invite; X-Kvitt-App-Version-Name stored in devices.app_version_name (migration 0003, schema 3); OpenAPI and examples follow. Phone: :core:model, :core:fakes, :data, features and :app updated together; goldens re-recorded for S-20 (version name) and new S-1/S-22 states. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TQd3pEP9UeN2uifbHknQ7B
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
-- Kvitt server schema v3: the app's versionName per device (devices.app_version_name), sent in the
|
||||
-- X-Kvitt-App-Version-Name header and written like app_version_code (SPEC §14.3.1, §8.2). Do not edit; add a new
|
||||
-- migration and bump the schema version (SPEC §14.8). Applied on top of 0002_categories_v2.sql.
|
||||
--
|
||||
-- Existing devices keep every column and get NULL until their next request that carries the header.
|
||||
ALTER TABLE devices ADD COLUMN app_version_name TEXT
|
||||
CHECK (app_version_name IS NULL OR length(app_version_name) BETWEEN 1 AND 32);
|
||||
|
||||
UPDATE meta SET value = '3' WHERE key = 'schema_version';
|
||||
Reference in New Issue
Block a user