Post-Implementation Specification
Deviations from the original specification and phasing plan.
Phasing deviations
Section titled “Phasing deviations”The original phasing document defined Phases 3a, 3b, 4a–4d. The actual implementation used a different numbering (3.1–3.7) that emerged during planning. The mapping:
| Original phase | Actual phase | Notes |
|---|---|---|
| Phase 3a: BFF Upload Proxy | Phase 3.5: BFF Routes | Combined with 3b into a single PR |
| Phase 3b: BFF Cookie Signing | Phase 3.5: BFF Routes | Combined with 3a |
| Phase 4a: Design System Components | Phases 3.2–3.4 | Done earlier as ux-prototype work |
| Phase 4b: Grid + Cookies | Phase 3.6: SPA Integration | Combined with 4c into PR #742 |
| Phase 4c: Upload + Forms | Phase 3.6: SPA Integration | Combined with 4b |
| Phase 4d: E2E Verification | Phase 3.7: Release (partial) | Not formally gated |
Specification deviations
Section titled “Specification deviations”Upload callback injection
Section titled “Upload callback injection”Specified: Production ImageUploadHandler injected per-component via
callback props.
Implemented: 4.11.x used callback props (Option B bridge). 5.0.0
migrated to ImageUploadProvider context (Option C) during the same
project, eliminating callback props entirely. This was a scope expansion
driven by the leaky-abstraction analysis during implementation.
Image column editing
Section titled “Image column editing”Specified: ImageCellEditor wired via AG Grid’s editable: true +
cellEditor column definition.
Implemented: AG Grid cell-editor lifecycle proved incompatible with
Radix-portalled modal editors (FD-20). Replaced with wrapper-scoped
<ImageUploadDialog> triggered by onCellDoubleClicked. The image column
is not AG-Grid-editable.
CDN auth
Section titled “CDN auth”Specified: CloudFront signed cookies for CDN access.
Implemented: Dual-mode auth — signed cookies for production (*.arda.cards),
signed URLs for Amplify preview and localhost. This was a late discovery when
Amplify preview testing revealed cookies don’t work cross-domain (FD-22).
Zoom < 1 in image editor
Section titled “Zoom < 1 in image editor”Specified: Zoom range 0.5–3.0 with canvas export matching editor preview.
Implemented: Zoom range works in the editor UI but canvas export at zoom < 1 produces an unchanged image (full natural-size copy). Three fix attempts failed due to coordinate-space misunderstanding. Tracked in arda-frontend-app#755.
api-proxy bump
Section titled “api-proxy bump”Specified: ^0.1.0 → ^1.0.0.
Implemented: ^0.1.0 → ^2.0.0. The api-proxy had a major version
bump during Phase 3.1 that wasn’t anticipated in the original specification.
Copyright acknowledgment gate
Section titled “Copyright acknowledgment gate”Specified: Upload blocked until copyright checkbox accepted.
Implemented: Deferred. The copyright liability consultation recommended it but it was descoped to keep the initial release focused on core upload functionality.
Copyright: (c) Arda Systems 2025-2026, All rights reserved
Copyright: © Arda Systems 2025-2026, All rights reserved