Milestone F Phase 6 status
Version 1.0.0 is the first public Hex release target and establishes the
initial stable API. Selecting the version does not reuse or upgrade the earlier
0.1.0 candidate evidence: the 1.0.0 archive, isolated consumer, exact-source
reproducibility, review disposition, final-revision CI, merge, Hex publication,
and public tag must be recorded independently. All six human accessibility
scenarios remain pending and unassessed, but their gate is explicitly waived and
non-mandatory for 1.0.0; this is not a conformance claim.
All 15 prepublication mandatory gates and the final detached Hex dry run now
pass. The release owner has separately authorized one exact execution of
mix hex.publish --yes for the immutable package and documentation payload;
that attempt failed at Hex's OTP challenge because its non-interactive process
received EOF. Immediate registry queries confirmed that no public package or
release was created. At that point, Hex publication required fresh retry
authorization plus secure interactive OTP entry. The owner subsequently
authorized one retry of the same immutable package-and-documentation action;
Hex publication remains pending on secure interactive OTP entry. The public tag
remains unauthorized.
All 38 Milestone F requirements have an implementation/evidence entry in
release/records/milestone-f-acceptance.md. Fly release
rel_76njzd0doog3yko3 serves exact revision
8654f6a4500ce210682d7cae7453553d878a714c with package and demo identity
1.0.0; service health, canonical smoke, and deployed Chromium checks pass.
That successful operational deployment did not itself complete package
qualification. The exact-source build, consumer, review disposition, CI, merge,
and dry-run evidence now pass separately; Hex publication and the public tag
remain pending. The manual-accessibility waiver changes no automated or
isolated-consumer requirement.
The public-release Phase 1 preflight passed from synchronized main
42227ebb2892f0b98d0204786c616d0641497c3f. It records a non-material
post-deployment source inventory, consistent package metadata, authenticated
personal Hex identity pcharbon70, no existing public shadcn_ui package, and
a passing exact pinned-toolchain/lock check. See
release/public-release-preflight.json. This does not create an archive,
select the final RELEASE_SHA, publish Hex, or complete any later mandatory
gate.
Public-release Phase 5 Section 5.1 passes from detached
RELEASE_SHA aa6a2d35474a51ea63248131631ace2b113b99a4. The final archive is
byte-identical to the approved Phase 4 archive, the Hex dry run reviews the
exact package and documentation metadata under authenticated owner
pcharbon70, and a post-run query confirms the public package is still absent.
See release/public-release-phase-5.json. No publish command is authorized by
the dry-run evidence alone; the later explicit authorization is bound in that
same record to one package-and-documentation attempt and does not include a
public tag. That attempt is also recorded there as blocked at Hex's OTP
challenge, with post-attempt registry absence evidence and no retry.
Historical Milestone F Phase 5 candidate status
The Phase 5 record proved its then-current committed-input build and archive
consumer. Its 62-entry archive and now-unretrievable source revision do not
qualify the current 63-entry archive. Current machine-readable status lives in
release/candidate-status.json; the readable interpretation is
release/records/release-candidate.md.
The candidate remains blocked, not qualified. Historical passing evidence is retained below, but the current blockers in the Phase 6 status above take precedence. No Hex publication, public tag, marketplace listing, platform certification, or official upstream affiliation is authorized or implied.
Milestone F Phase 3 documentation candidate
The repository describes an internal 0.1.0 candidate. This historical phase
made the component, installation, compatibility, controller, Dstar, LiveView,
migration, rollback, and provenance contracts reviewable; it does not prove the
later CI, deployment, manual-review, public-tag, or Hex publication gates.
See docs/integrations.md, docs/upgrading.md, and docs/provenance.md.
At that execution point, Phase 4, Phase 5 integration, and Milestone F Phase 6
remained pending; the current Phase 6 status above supersedes that snapshot.
Milestone E Phase 6 candidate
Phase 6 consolidates all six Media/Motion APIs and ExDoc groups, complete gallery
references, bounded-work fixtures and release audits. See
docs/motion-media-guide.md and release/records/milestone-e-acceptance.md for current
evidence and outstanding manual, CI, and current-candidate checks. The SpecLed
runner problem recorded during E was repaired in Milestone G.
Historical phase results below do not substitute for final candidate gates.
Milestone F remains separate. No Hex publication is authorized.
Earlier candidate records and common release procedure
The remaining Pages and phase-local gate statements below are dated execution records. The accepted Fly.io decision and the current Phase 6 status above supersede their hosting and current-blocker language without rewriting history.
Milestones A through D produce an internal 0.1.0 candidate containing
Foundation, native Forms, Disclosure, Navigation, Content Surfaces, Overlays,
and Interactive Surfaces
components. This process does not authorize or perform
publication to Hex.
Candidate verification
Milestone E Phase 5 adds Media.ImageGallery, the reference at
/components/media/image-gallery and substantial /examples/image-gallery.
Run mix run scripts/render-image-gallery-fixture.exs --check,
node scripts/record-gallery-origin.mjs --check and
npm run browser:milestone-e-phase5. The archive requires ImageGallery and
excludes its probe, observations, fixtures and demo; the expected payload is
61 allowlisted entries. Full images use existing native Dialog, explicit close
and ordinary destinations. Optional origin CSS is deferred after the actual
three-engine probe; no new authored CSS exception or runtime is distributed.
Phase 6 milestone acceptance remains pending. See the Phase 5 execution record
for direct checks and outstanding environment/manual/deployment limitations.
Milestone E Phase 4 adds Motion.ScrollIndicator and Media.CoverFlow, their real
gallery references, source-local timelines and neutral/flat fallbacks. Run
mix run scripts/render-scroll-media-fixture.exs --check and
npm run browser:milestone-e-phase4 alongside earlier regressions. The actual
archive audit requires both sources and verifies 60 allowlisted entries;
demo observations, images, tests and tooling remain excluded.
Phase 4 direct evidence: package precommit 356 tests, demo precommit 56, 48 new browser checks and 337 earlier browser regressions; deterministic export and subpath smoke cover 614 variants, three code/style assets and three local media fixtures. ExDoc, fixture reproduction, CSS/provenance and archive checks pass. SpecLed still reports four existing nested-login-shell command failures and 143 warnings; direct equivalents pass using PowerShell's Elixir 1.20.3. No gate is disabled and no manual screen-reader or deployment claim is made. See the Phase 4 execution record for exact matrix, commands and limitations.
Milestone E Phase 3 adds Motion.Marquee and Motion.Stagger to the same candidate.
Run mix run scripts/render-motion-fixture.exs --check and
npm run browser:milestone-e-phase3 as well as earlier E and gallery regressions.
The audit requires both defining modules in the actual archive, with the same
exclusion of demo images, scripts, fixtures, observations and test harnesses.
No package JavaScript, autoplay, infinite animation or visibility observer ships.
The Phase 3 execution record distinguishes direct passing checks from the four existing SpecLed nested-login-shell failures (Elixir 1.18.0 against the current OTP installation). CI gates remain enabled. No manual assistive-technology certification, successful Pages deployment or Hex publication is claimed here.
From a clean checkout at the repository root:
- Run
mix deps.get --lockedandnpm ci. - Run
npm run assets:buildandnpm run assets:check. - Run
mix precommit,mix docs, andmix hex.build. - Run
mix run scripts/check-release-archive.exsto inspect the actual payload againstpackage/0's explicit allowlist. - Verify the archive contains public modules, compiled CSS, README, changelog, provenance, notices, and Mix metadata only.
The archive must reject .spec, demo sources and exports, scripts, workflows,
tests, _build, deps, doc, node_modules, source maps, remote runtime
assets, credentials, and mutable user data. The checked-in lockfiles remain
repository verification inputs and are not package contents.
Gallery publication and rollback are independent of the package candidate and
are documented in demo/DEPLOYMENT.md.
For a milestone rollback, revert the reviewed milestone commits and rerun the complete candidate verification. Never edit an archive or the deployed gallery artifact in place. The package and gallery may be rolled back independently because the demo is excluded from package contents.
Milestone D acceptance history
The following phase records describe their original scope. Phase 6 supersedes their historical statements that public overlay gallery delivery is pending.
Milestone D Phase 6 candidate evidence
The public catalogue now contains all seven native/supplemental components, their complete visible alternatives, a capability matrix, and four realistic local-only compositions. Settings confirmation uses native validation and method-dialog forms; rejection/pending examples are authored snapshots, not real requests. The exact observed feature record is dated 2026-08-26 and remains outside package contents. The normative manifest remains the capability policy.
Section 6.3 verification rebuilt ExDoc, deterministic package/gallery CSS and static export, checked all seven provenance mappings plus shared helpers and the full MIT notice, and audited the actual 51-entry release payload. No upstream revision changed, no upstream site assets were imported, and no runtime JavaScript or client-specific target was introduced. Final integration results are recorded in the Phase 6 plan with any environment limitations.
Final direct acceptance passed 320 package tests, 40 demo tests and 177 locked Milestone D browser checks, including demo-only axe-core audits. Integration corrected dark destructive contrast and narrow Drawer header wrapping. Static subpath smoke verifies 208 HTML variants and exactly three selected assets; stale Windows build assets no longer enter the export. SpecLed's local nested runner still fails on its existing OTP/rebar mismatch; CI remains a required gate, and this record does not claim an unconditional release approval.
Run node scripts/record-overlay-capabilities.mjs --check and
npm run browser:milestone-d-gallery in addition to phases 1 through 5. The live
suite tests the actual controller pages; static export and deployment smoke are
separate gates. Merge and successful GitHub Pages deployment are still required
to publish this candidate. No Hex publication is authorized by these checks.
Milestone D Phase 1 acceptance record
The candidate includes the authored native overlay capability manifest and schema as normative package data. Chromium 151.0.7922.34, Firefox 153.0, and WebKit 26.5 are the exact Playwright 1.62.1 evidence locks, not package targets. Acceptance runs the shared Dialog/Popover fixture in all three engines, including CSS-disabled, no-script, disabled-feature, DOM-replacement, nested-Popover, reduced-motion, and forced-color cases. The archive excludes Playwright, fixtures, reports, demo helpers, and every package JavaScript runtime.
Milestone D Phase 2 acceptance record
Dialog and Alert Dialog are public defining components backed by native modal dialog, declarative invoker commands, explicit exits, and deterministic relationships. Acceptance runs native focus containment, Escape, closedby policies, light dismiss, form method dialog, nested Popover, long/RTL content, CSS-disabled, no-script, replacement, Alert cancellation, pending, rejection, and caller-owned action snapshots in the exact locked three-engine matrix. The archive retains no modal runtime, consequence operation, browser harness, or test fixture.
Milestone D Phase 3 acceptance record
Drawer adds logical start/end/bottom presentation to native modal dialog,
bounded keyboard-accessible body scrolling, safe-area spacing, concise fixed
heading/exit/footer regions, and no gestures or scroll runtime. The three-engine
suite renders its fixture from actual HEEx and verifies RTL/orientation, all
sizes, zoom, themes, forced colors, reduced motion, focus, dismissal, native
validation and forms, nested Popover, long translated content, touch activation,
replacement, CSS-disabled/no-script behavior, disabled logical placement and
transitions, and an ordinary fallback destination. Unsupported overscroll
containment retains native scrolling; the locked Windows WebKit evidence uses
that fallback. Run mix run scripts/render-drawer-fixture.exs --check and
npm run browser:milestone-d-phase3 alongside the prior overlay suites.
The release contains Drawer source, compiled CSS and pinned provenance; it excludes fixture generation, Playwright, tests, gallery and JavaScript runtimes. Public overlay gallery delivery remains Phase 6 work.
Milestone D Phase 4 acceptance record
Popover and Dropdown Actions ship native nonmodal surfaces, declarative invokers, deterministic names and keyed ordinary links/buttons. Placement and ordered flips are optional CSS enhancements with a bounded centered fallback; no toggle listener, focus manager, menu runtime, application command or package JavaScript is shipped. Auto/manual behavior, native keyboard preferences, scroll-region Tab stops, focus return, nested Popover in Dialog, all logical edges, long text, zoom, RTL, themes, forced colors, replacement, touch, no-script, CSS-disabled and deliberately unavailable capability paths are browser-tested.
Run mix run scripts/render-popover-fixture.exs --check and
npm run browser:milestone-d-phase4 with prior overlay suites. Native form tests
submit to intercepted fixture URLs; they do not execute real application
operations. The actual archive audit requires both new defining modules and
excludes fixture generation, browser tooling and demo sources. Gallery pages
remain scheduled for Phase 6.
Milestone D Phase 5 acceptance record
Tooltip and Hover Card provide supplemental CSS-first descriptions/previews, not interest invokers or interactive overlays. Their text-labelled native buttons/links, stable description IDs, escaping, protected globals and presentation-only preview guard are verified without adding runtime dependencies. Required instructions and complete destinations remain outside previews.
Run mix run scripts/render-supplemental-fixture.exs --check and
npm run browser:milestone-d-phase5 with all prior overlay suites. Locked
Chromium, Firefox and WebKit exercise hidden accessible descriptions, keyboard
and pointer operation, native link activation/context menus, preview transitions,
replacement, scoped logical placement, no-script/touch, unsupported CSS,
themes, forced colors, reduced motion, zoom, long RTL text and clipped containers.
The archive audit requires both public modules and their shared helper while
excluding browser tooling, fixture generators, tests, demo and package JavaScript.
The optional preview may be clipped; it never becomes a required operation.
Public overlay gallery delivery and milestone acceptance remain Phase 6 work.
Milestone C acceptance record
The candidate must include the seven Milestone C public components and their compiled CSS/provenance mappings while excluding the gallery, browser fixtures, static export, and demo dependencies. Acceptance requires package and demo precommit, deterministic package and gallery assets, static-export comparison, Milestone C Chromium coverage, ExDoc, archive allowlist inspection, provenance and notice audits, SpecLed validation, and whitespace checks. Navigation must remain destination-based; Radio Panels must remain native radios rather than a tab contract; true tabs, menus, overlays, application behavior, and package JavaScript remain absent.
Milestone E Phase 1 acceptance record
This candidate adds internal media/motion contracts, normative capability data, scoped suppression, original demo fixtures and the actual capability reference. It does not export the six planned public components. The phase execution record contains the full commands, observations and outstanding checks.
Local verification on 2026-08-26 passed package precommit (330 tests), demo precommit (47), Phase 1 three-engine browser coverage (60), affected A–D gallery regressions (55), deterministic assets/export, subpath smoke, ExDoc and actual Hex archive inspection (55 entries). Playwright 1.62.1 locks Chromium 151.0.7922.34/revision 1234, Firefox 153.0/revision 1538 and WebKit 26.5/revision 2336; those are observations, not package targets. The static artifact contains 524 route variants, three style/script assets and three selected media assets. The Hex archive excludes demo media, observations and browser infrastructure.
SpecLed full checks still fail four nested commands because their login shell selects Elixir 1.18 compiled for OTP 26 while direct PowerShell uses Elixir 1.20.3 with OTP 29. Direct equivalent checks pass; the gate remains outstanding. SpecLed's broad shared-file reconciliation advice is not proof that all future component requirements are implemented. Windows denied symlink creation in the negative fixture test; Linux CI is required to execute that assertion. Neither CI success, manual screen-reader acceptance, publication nor deployment is claimed. No machine-wide toolchain settings or verification gates were changed.
Milestone E Phase 2 acceptance record
Carousel is now a public defining component: a named native scroller, complete ordered content and real item links, with no generated controls or runtime. Its Media reference and media-browser composition ship with local fixtures. Child focus takes precedence over snap, including oversized cards at zoom. The gallery grid also retains narrow-page bounds.
Local checks on 2026-08-26 passed 337 package tests, 50 demo tests, 39 Carousel browser cases, 60 foundation cases on final rerun and 55 A–D gallery regressions. Playwright 1.62.1 uses Chromium 151.0.7922.34, Firefox 153.0 and WebKit 26.5. Two initial Firefox foundation probe failures passed isolated and complete reruns without changing their evidence; the phase record retains this observation. Assets, generated fixture, deterministic 554-route export, subpath smoke, ExDoc and the actual 56-entry archive audit pass. Demo media and browser tools remain excluded from the package.
SpecLed still has four known nested-command toolchain failures (153 warnings); direct checks pass. Windows symlink assertions require Linux CI. No publication, manual assistive-technology acceptance or physical touch-swipe result is claimed. See the Phase 2 execution record.