chore(autonomous-session): consolidate uncommitted work from prior session
Bundles the prior autonomous-session output that was sitting unstaged: - Em-dash sweep across src/ + tests/ (en-dash/em-dash to hyphen, ~2280 instances) - country-flag-icons rollout (CountryFlag component, replaces emoji glyphs that never rendered on Windows; lazy-loads the 3x2 SVG index as a single chunk after the per-subpath dynamic-import approach silently failed in webpack) - Admin IA Phase 1+2: 7-domain regroup, 41 to 38 pages, /admin/berths index, redirects (ocr to ai, reports to dashboard, invitations to users), docs/admin-ia-proposal.md - Per-template email tester (registry + endpoint + UI on Email admin page) - Cancel-document mode picker (delete-from-Documenso vs keep-for-audit) - Dashboard PDF report: 25 widgets, SVG charts, date-range picker, 11 resolvers - Customize-widgets per-region sortables at xl+ (charts/rails/feed); single flat sortable below xl when the layout stacks; per-viewport saved orders - Audit doc updates capturing each shipped item - Lint fixes: react-compiler immutability in DonutChart (reduce instead of let-reassign), set-state-in-effect disables in CountryFlag and UploadForSigning preview-bytes effect, unused 'confirm' destructures in interest contract + reservation tabs, unescaped apostrophe in test-template card copy
This commit is contained in:
@@ -37,12 +37,12 @@ export interface StorageKeyTable {
|
||||
* Column naming is intentionally inconsistent across the schema for historical
|
||||
* reasons:
|
||||
* - `files.storage_path` (oldest table, named before §4.7a rename)
|
||||
* - `berth_pdf_versions.storage_key` (Phase 6b — followed the new convention)
|
||||
* - `berth_pdf_versions.storage_key` (Phase 6b - followed the new convention)
|
||||
* - `brochure_versions.storage_key` (Phase 6b)
|
||||
* - `gdpr_exports.storage_key` (worker-uploaded export bundle)
|
||||
*
|
||||
* None of these tables carry a per-row content-type column today
|
||||
* (`files.mime_type` exists but isn't the same semantics — it's the
|
||||
* (`files.mime_type` exists but isn't the same semantics - it's the
|
||||
* original-upload mime, not the stored object's Content-Type header). The
|
||||
* migration falls back to `application/octet-stream` when
|
||||
* `contentTypeColumn` is omitted; the byte stream is what matters for the
|
||||
@@ -58,7 +58,7 @@ export const TABLES_WITH_STORAGE_KEYS: StorageKeyTable[] = [
|
||||
{ table: 'brochure_versions', keyColumn: 'storage_key', pkColumn: 'id' },
|
||||
{ table: 'gdpr_exports', keyColumn: 'storage_key', pkColumn: 'id' },
|
||||
// Last-resort recovery: pg_dump artefacts from the BackupService. The
|
||||
// audit caught these were missing — flipping the storage backend used
|
||||
// audit caught these were missing - flipping the storage backend used
|
||||
// to silently orphan every backup, dark-blacking the recovery path.
|
||||
{ table: 'backup_jobs', keyColumn: 'storage_path', pkColumn: 'id' },
|
||||
];
|
||||
@@ -242,7 +242,7 @@ export interface MigrationOptions {
|
||||
dryRun: boolean;
|
||||
/** Skip the file copy and just flip the active backend pointer.
|
||||
* Existing files become inaccessible until they're migrated later
|
||||
* or the backend is reverted. Rare — surfaced in the admin UI as
|
||||
* or the backend is reverted. Rare - surfaced in the admin UI as
|
||||
* a clearly-warned alternative to switch + migrate. */
|
||||
skipMigration?: boolean;
|
||||
/** Override for tests. */
|
||||
|
||||
Reference in New Issue
Block a user