future-plans: migrate to integer IDs via explicit safe migration tool

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-23 23:06:24 +00:00
parent 210fb1e037
commit 5681d5f024

View File

@@ -76,10 +76,25 @@ review:
#### Component IDs in dropdowns and lists #### Component IDs in dropdowns and lists
The component selector dropdown (e.g. in the inventory entry dialog) only shows the The component selector dropdown (e.g. in the inventory entry dialog) only shows the
display name, which is ambiguous when multiple components share a name. Should also display name, which is ambiguous when multiple components share a name. Should also
show the component ID. Ties in with the question of whether components should have show the component ID.
user-assignable short IDs (like a part number or internal ref) rather than the
current auto-generated timestamp+random strings. A short sequential or user-defined #### Migrate to integer IDs
ID would be far more readable in dropdowns, exports, and URLs. Current IDs are timestamp-base36 + random chars. Replace with plain integers
(auto-incrementing). Benefits: human-readable, shorter in URLs, sortable by creation
order, easier to reference verbally.
Migration must be done as an explicit standalone tool (`tools/migrate-ids.mjs` or
similar) that:
1. Reads the current database
2. Builds an old→new ID mapping for all entity types (components, fields, inventory
entries, grids, PDFs, etc.)
3. Rewrites all references throughout the data (e.g. inventory entries reference
component IDs, components reference field IDs, file_ids arrays, etc.)
4. Writes a new database file without touching the original until explicitly
confirmed
5. Keeps a mapping log so the migration is auditable and reversible
Should not be run automatically — operator invokes it deliberately after backing up.
#### Component list sorted by display name #### Component list sorted by display name
The component left pane list is currently sorted by base name. It should sort by The component left pane list is currently sorted by base name. It should sort by