Classification
Public product issue for the open-source flotilla Parade viewer. Generic fixtures only; no private deployment content or identifiers.
Verified constraint
The Parade archive conflates a deck's identity with an ISO calendar date:
- internal/dash/parade.go defines paradeDateRe as the exact YYYY-MM-DD shape.
- readParades silently ignores every directory whose name does not match.
- asset and conversation routes enforce the same date-only key.
- the authoring documentation specifies parades-dir/YYYY-MM-DD/slides.md.
This is therefore a documented Parade convention, not an accidental JavaScript parse behavior. The product defect is that the convention is also the only archive identity model and exclusion is silent.
Rendered reproduction
Using the real dash server and Chromium at 1024×768:
- Place a generic deck at 2026-08-08/slides.md.
- Place a second generic same-day deck at 2026-08-08-eod/slides.md.
- Open /parade and switch to “all parades.”
- The archive renders exactly one card. The -eod deck is absent with no invalid-entry or unsupported-name state.
The observation was first surfaced in a viewport verdict relayed through two writing/coordination seats. The mechanism above was independently verified in source and with the rendered viewer before filing.
Product impact
- A second parade/deck variant on the same day cannot coexist in the viewer under a descriptive identity.
- Copying the bytes into a synthetic date directory makes them render but changes archive identity and is manual per deck.
- Authors get no viewer-visible refusal or preflight failure; the artifact is simply omitted.
- The Parade viewer does not need to become a universal presentation platform, but its archive should not require one deck per calendar date as the only representable shape.
Acceptance
- Decouple safe deck identity from display date. Support at least multiple same-day variants with stable, descriptive slugs (for example, date metadata plus a safe deck id), while preserving existing YYYY-MM-DD archives.
- Define deterministic ordering and collision behavior.
- Update deck, asset, and conversation routes to use the same stable identity without weakening traversal, symlink, or inert-image protections.
- Provide an author-facing preflight or explicit invalid-entry state; unsupported archive entries must not disappear silently.
- Render a generic archive containing two same-day variants through the real viewer at desktop and phone widths. Both cards must be visible, both decks must open, and their assets/conversations must remain isolated.
- Capture screenshots and perform human visual inspection. Source/string tests alone are insufficient.
Related viewer findings: #1010 (desktop controls overlap copy) and #1011 (image-only slides render as literal Markdown).
No priority is implied.
Classification
Public product issue for the open-source flotilla Parade viewer. Generic fixtures only; no private deployment content or identifiers.
Verified constraint
The Parade archive conflates a deck's identity with an ISO calendar date:
This is therefore a documented Parade convention, not an accidental JavaScript parse behavior. The product defect is that the convention is also the only archive identity model and exclusion is silent.
Rendered reproduction
Using the real dash server and Chromium at 1024×768:
The observation was first surfaced in a viewport verdict relayed through two writing/coordination seats. The mechanism above was independently verified in source and with the rendered viewer before filing.
Product impact
Acceptance
Related viewer findings: #1010 (desktop controls overlap copy) and #1011 (image-only slides render as literal Markdown).
No priority is implied.