chore(meta): T-1131/T-1133 to review — PR #184 up (companion wave 2)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-17 10:44:57 +02:00
co-authored by Claude Fable 5
parent a346410832
commit 51b6147037
2 changed files with 6 additions and 0 deletions
@@ -1508,3 +1508,5 @@ INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, chang
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPXAWGRH9QK5QKV7584Q92Z8', 'status', 'review', 'done', NULL, '2026-07-17 07:33:14', '2026-07-17 07:33:14.224', '2026-07-17 07:33:14.224', NULL, '7b6bed8f8be45d9ed6bfad8ffb52d599', 2) ON CONFLICT(hash) DO NOTHING;
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPXATGN8QJAJVR0WCRHJS2TG', 'status', 'backlog', 'in_progress', NULL, '2026-07-17 07:34:22', '2026-07-17 07:34:22.189', '2026-07-17 07:34:22.189', NULL, '68970342b3e64d173fd3a650699e2743', 2) ON CONFLICT(hash) DO NOTHING;
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPXB28V72K8ZPE5WSNJS1SP8', 'status', 'backlog', 'in_progress', NULL, '2026-07-17 07:34:22', '2026-07-17 07:34:22.191', '2026-07-17 07:34:22.191', NULL, 'f2c4221be9f8284f42cf30df6e2923a8', 2) ON CONFLICT(hash) DO NOTHING;
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPXATGN8QJAJVR0WCRHJS2TG', 'status', 'in_progress', 'review', NULL, '2026-07-17 08:44:33', '2026-07-17 08:44:33.133', '2026-07-17 08:44:33.133', NULL, 'acdc54129303a07fbfa6b17ae466dcca', 2) ON CONFLICT(hash) DO NOTHING;
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPXB28V72K8ZPE5WSNJS1SP8', 'status', 'in_progress', 'review', NULL, '2026-07-17 08:44:33', '2026-07-17 08:44:33.136', '2026-07-17 08:44:33.136', NULL, '1f0a7c19bc19621fba62d8990c338482', 2) ON CONFLICT(hash) DO NOTHING;
+4
View File
@@ -2159,3 +2159,7 @@ INSERT INTO tickets (record_id, type, parent_record_id, title, description, stat
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPXB28V72K8ZPE5WSNJS1SP8', 'task', '06FPX7FKG0Y6SYWEDPG4PJQHQ8', 'Data browser UI — implant/browser app, six index+detail screens', 'D-254 SS4 + Jeroen''s IA ruling (2026-07-17): a SEPARATE implant app (implant/browser), sibling to the Atlas — the six registry entities do not share the Atlas''s geographic drill-down. ONE ticket for all six per Jeroen (single review sees the whole surface). Scope: new client/ui/implant/apps/browser/ app.tres + app.gd + index/detail screen pairs for star systems, bodies, stations, corporations, commodities, trait templates — composed ENTIRELY from D-169 implant components (ImplantPanel/ImplantHeader/ImplantDataRow/ImplantTextBlock; no new UI primitives); wired to the six BrowseRequest endpoints; reachable from the standalone shell (and by design also from the in-game implant later — it is a normal implant app). Blocked by the browse-proxy ticket (data source) and the standalone-shell ticket (launch surface).
Note (D-254 SS3 addition, 2026-07-17): the implant/browser app manifest carries available_in_companion = true (the default). Because the companion shell is a generic implant host, this app appears in the standalone Atlas automatically the moment it registers no companion-side wiring.', 'in_progress', 'high', NULL, 'client', NULL, '2026-07-17 06:03:32.441', '2026-07-17 07:34:22.191', NULL, 'c48ec6ba702715e60cca4f721b2d43a3', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPXATGN8QJAJVR0WCRHJS2TG', 'task', '06FPX7FKG0Y6SYWEDPG4PJQHQ8', 'Browse data proxy — six v1 entity read endpoints over the wire', 'D-254 SS4. BrowseRequest/Response per-entity-kind types (star systems, bodies, stations, corporations, commodities, trait templates) in server/src/atlas/, sibling to atlas_data_proxy.rs; rusqlite reads against systems.db via the CityContextReader::open() pattern (five-ish new read functions on a proven pattern); wired into the same inbound demux the reader connection uses. Wire-only by D-254 ruling (extends the T-949 precedent: the client never reads game data files directly; no SQLite GDExtension). Excluded from v1: cascade-derived atlas geometry tables (partially populated mid-Phase-4) and event-log tables (wrong UI shape) — exclusion list recorded in D-254. Blocked by the reader-connection ticket (needs the connection class to gate against).', 'review', 'high', NULL, 'server', NULL, '2026-07-17 06:02:28.906', '2026-07-17 08:44:33.132', NULL, 'e83c5a0d336f02877e614c196da847c4', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPXB28V72K8ZPE5WSNJS1SP8', 'task', '06FPX7FKG0Y6SYWEDPG4PJQHQ8', 'Data browser UI — implant/browser app, six index+detail screens', 'D-254 SS4 + Jeroen''s IA ruling (2026-07-17): a SEPARATE implant app (implant/browser), sibling to the Atlas — the six registry entities do not share the Atlas''s geographic drill-down. ONE ticket for all six per Jeroen (single review sees the whole surface). Scope: new client/ui/implant/apps/browser/ app.tres + app.gd + index/detail screen pairs for star systems, bodies, stations, corporations, commodities, trait templates — composed ENTIRELY from D-169 implant components (ImplantPanel/ImplantHeader/ImplantDataRow/ImplantTextBlock; no new UI primitives); wired to the six BrowseRequest endpoints; reachable from the standalone shell (and by design also from the in-game implant later — it is a normal implant app). Blocked by the browse-proxy ticket (data source) and the standalone-shell ticket (launch surface).
Note (D-254 SS3 addition, 2026-07-17): the implant/browser app manifest carries available_in_companion = true (the default). Because the companion shell is a generic implant host, this app appears in the standalone Atlas automatically the moment it registers no companion-side wiring.', 'review', 'high', NULL, 'client', NULL, '2026-07-17 06:03:32.441', '2026-07-17 08:44:33.135', NULL, 'e6f25d5beb2dcb3a68eba510cf0e3c22', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);