Milestones
List view
Everything between wanting to contribute and a merged pull request: CONTRIBUTING, the commit convention, where questions are routed, and who a report reaches.
No due dateβ’1/4 issues closedPages that promise something untrue, and pages that promise nothing at all. Includes coverage gaps where a supported thing is simply undocumented.
No due dateβ’0/6 issues closedWhat we hand people, and whether it is what we think we are handing them. Nine issues about the published artifact and the tree behind it β the same surface 0.7.0 and 0.8.0 kept finding defects in, now that the gates exist to keep finding them. **Still wrong in a shipped tarball.** #362 β `@poveste/app` points `exports.types` at a file it never ships, found by publint on a package the attw preflight skips. #312 β the rest of that skip list. **The vendors package, which may not need to exist.** #347 proposes replacing the rollup prebundle with the thin re-exports it already wraps; if it lands, #305 (2.7 MB of redistributed type declarations with no licence notices) stops having a subject. #345 β its build hands npm two flags as one argument and swallows the failure. **Dependencies.** #307 β 28 advisories reachable through runtime deps and nothing watching. #344 β birpc three majors behind, shipped at runtime. #357 β four more majors with nothing blocking them. #367 β the story-collection pool is an abandoned republish whose `latest` is its own dead version, so every outdated-check reports it current. **Read #347 before #305, and #362 with #312.** Both pairs have an order that saves work. **This milestone carries no version number, deliberately.** It names a body of work, not a release.
No due dateβ’0/10 issues closedDefects a user meets while using Poveste, as opposed to defects in what we ship them. Eight issues that have nothing to do with each other except that each one is a thing that does not work. They were sitting in a catch-all beside CI cost and dependency majors, which is how a plain bug goes unfixed for months: nobody scanning that milestone was looking for bugs. **Two reproduced from histoire, on 0.8.0, a year after they were reported upstream.** #369 β Poveste cannot build inside Vike; the original was filed by a Vike maintainer in July 2025 and is still `to triage` there. #370 β editing a markdown file never reloads, because the watcher handles `add` and `unlink` and not `change`. **Two plugins nobody had run since the fork.** #352 β `plugin-percy` serializes the sandbox before the story renders, so every snapshot it posts is a blank page and the suite can never fail. #353 β `plugin-screenshot` writes PNGs into a directory `.gitignore` does not cover. **The rest.** #324 and #333 are the same defect twice: config accepts a wrong *type* and crashes inside pathe, accepts a wrong *key* and does nothing at all. #332 is #101 still live in both non-iframe render paths. #365 is story collection resolving vue-i18n's bundler build and defeating its own feature-flag self-heal. **This milestone carries no version number, deliberately.** It names a body of work, not a release.
No due dateβ’7/26 issues closedWhat a book weighs, and what it costs to open one. Six issues that together account for most of a 12 MB built book, plus the navigation cost users actually feel. All measured against a real build rather than inferred from the config. - **#304** β the syntax highlighter ships every Shiki grammar and theme: **10.1 MB of a 12 MB book**, where roughly 1.2 MB would do. - **#329** β `build.ts` forces `minify: false` inside the "Force vite build options" block, so user config cannot override it. Roughly doubles the ~2.8 MB that is not highlighter. - **#306** β `@poveste/app` pulls a **5.9 MB font package across 420 files** to ship 7 files and 108 KB. This one is install weight rather than book weight, but it is the same accounting failure. - **#328** β realm reuse never applies to storyβstory navigation, so **every sidebar click is a 210β340 ms cold sandbox boot**. #240 pooled realms for the grid; the path users spend their time on never reaches that mechanism. - **#319** β nothing measures grid *scroll* or interaction cost, so #328's and #304's improvements cannot be demonstrated. Runs first, for that reason. - **#326** β browsing writes two `localStorage` keys per variant containing only defaults, and nothing prunes them. Small, but it is the same habit: paying for something nobody asked for. ## Why this is its own milestone Scattered across a general patch milestone these read as five unrelated chores. Together they are one claim the project makes and does not currently meet: Poveste is the fast one. That is the whole pitch β *"Lightning fast development and instant HMR"* is the first bullet in the README, and the fork's argument against Storybook. A 12 MB book that is 84% syntax highlighter, ships unminified, and takes a third of a second to change story is not that. ## Order **#319 first** β it builds the scroll benchmark, and three of the issues here make performance claims nothing can currently measure. 0.7.0 already shipped one of those (#283) with release notes that had to say *"a change, not a measured improvement"*. Doing it first means this milestone can defend its numbers. Then #329 β a one-line change with the widest effect and no design question. Then #304, which is the large one and needs a decision about fine-grained Shiki imports (and, per the note there, whether to move to Shiki 4 in the same change rather than migrating twice). #328 and #306 are independent. #326 is small enough to ride along with any of them. ## What done looks like A built `examples/vue3` book under 3 MB, a storyβstory navigation that reuses a realm rather than booting one, and an install that does not carry 5.8 MB of unused font files. #304 and #328 carry measured baselines to compare against. **This milestone carries no version number, deliberately.** It names a body of work, not a release. The version comes from the commit types in whatever range actually ships.
No due dateβ’0/10 issues closedFix our own accessibility before shipping a panel that measures everyone else's. Three issues, all measured against a real built book rather than read off the template, all defects a user of Poveste cannot fix from their own code: - **#299** β every book ships `<html>` with no `lang`. WCAG 2.1 Level A, and there is no config to override it. - **#310** β the book chrome fails 10 axe rules, 7 of them serious: 2.3:1 contrast on the brand colour, an untitled sandbox iframe, and more. - **#311** β what axe cannot see. The app has zero landmarks and no ARIA patterns, so arrow-key selection in the story list is visual only and a screen-reader user cannot operate the search. ## Why this is its own milestone It was competing for attention with font weight and lockfile refreshes in 0.7.2, which is the wrong comparison β these are correctness defects in what every user ships, not housekeeping. More importantly it is a **precondition for #162**, the accessibility panel in 0.9. That feature runs axe-core in the sandbox and reports per-variant results. Ship it while the chrome itself fails ten rules and its first output is a list of violations Poveste causes β which is worse than not having the panel, because it teaches users to ignore it. ## What done looks like axe-core against a built book with a variant selected and the search pane open reports zero violations from the chrome, and a screen-reader user can navigate the story list and operate the search. #310 carries the measured baseline to compare against. Deliberately **not** here: #316 (`/robots.txt` and Lighthouse agentic browsing). It came from the same audit run, but crawlers are not screen readers β it stays in 0.7.2 alongside #288. **This milestone carries no version number, deliberately.** It names a body of work, not a release. The version comes from the commit types in whatever range actually ships.
No due dateβ’0/3 issues closedThe machinery, not the product. Ten issues about how this repository is worked in, none of which a user of Poveste ever sees. **CI costs more than it should and verifies less than it claims.** #334 β a one-file CHANGELOG PR runs 11 jobs for 21 minutes, because neither test workflow has a path filter. #335 β `cancel-in-progress` is scoped to include `push: main`, so every release kills the CI of the commit immediately before the tag, and that commit sits on `main` neither passed nor failed. Same two files; #334 first makes #335 smaller. **Nothing measures coverage.** #351 β no provider, no config, no CI step, and a suite small enough (25 files, 219 tests, 6.3 s) that measuring it is cheap. It asks for a baseline, not a threshold. **Repo shape.** #337 β four reference books and five single-purpose fixtures share one directory, and one fixture is a required status check. #340 β the committed VS Code config never points at the pinned TypeScript. #359 β the docs site declares one of its six dependencies, and `netlify.toml`'s build-skip is justified by that being true. #275 β local e2e runs leave preview servers listening. #308 β `nightly.yml` pins `actions/checkout@master`, abandoned in 2020, in a workflow that has no trigger. **Deployment.** #321 and #166 β where poveste.dev deploys from, and how a user deploys a book of their own. Same subject, opposite audiences. **This milestone carries no version number, deliberately.** It names a body of work, not a release.
No due dateβ’6/33 issues closedEverything a stranger sees before they try anything: the repo front page, seven npm package pages, the reference docs, and what the migration guide tells people to do that the project does not do itself. **The release half of this milestone is finished.** #277, #286, #298, #300, #302, #303, #315 and #327 all closed β the publish path is now bootstrappable, resolvable, declared, and verified after the fact. What remains is the half nobody has started. Four README badges point at workflows deleted in #217 and render as broken images (#293). Two npm READMEs still say "add the plugin in histoire config" (#294). Reference docs teach `process.env.HISTOIRE` as the only API (#292). Six of seven examples still use the `histoire.config` filename the migration guide tells users to rename (#336). `robots.txt` serves HTML on production (#288). And #295 is the guard that keeps all of it fixed β worth doing *with* them, not after. Every one is a small change. Together they are the entire first impression of a project whose pitch is "maintained successor", and they have survived two releases. **This milestone carries no version number, deliberately.** It names a body of work, not a release. The version comes from the commit types in whatever range actually ships.
No due dateβ’27/31 issues closedThe first release that is only Poveste: features upstream was asked for and never attempted. Headline: an accessibility panel (axe-core in the sandbox, per-variant results). Storybook has one, Ladle has one, histoire never did β and it is the feature design systems are actually procured on. Alongside it: shareable story-state URLs, variant groups, and configurable preview defaults. **This milestone carries no version number, deliberately.** It names a body of work, not a release. The version comes from the commit types in whatever range actually ships β a `feat` makes a minor, everything else a patch β so a milestone and a version can never disagree, and neither has to be renumbered when the other moves.
No due dateβ’2/13 issues closedThe one feature both histoire and Poveste advertise and neither has built: props, slots and events extracted from component source, with controls generated from the inferred types. The supported-frameworks table has marked Auto-Docs as in-progress for four frameworks since the fork. Upstream demand is the highest of any feature request there (#126, 15 reactions; #638; #254; #458). Tractable now in a way it was not in 2022 β vue-component-meta and svelte2tsx both do the hard part. **This milestone carries no version number, deliberately.** It names a body of work, not a release. The version comes from the commit types in whatever range actually ships β a `feat` makes a minor, everything else a patch β so a milestone and a version can never disagree, and neither has to be renumbered when the other moves.
No due dateβ’0/11 issues closedThe work that has to land before Poveste can declare 1.0. 1.0 is a promise that the public surface β the config file, the `Hst` global, `<Story>`/`<Variant>` props, the plugin interface and the package names β will not break without a major. Everything here either costs a major to fix afterwards, or is a promise we already make and do not yet keep. When this milestone is empty the 1.0 conversation is open; it is not automatic. Correctness and performance work lives in the numbered releases, not here β this milestone is about surface.
No due dateβ’4/10 issues closedUnversioned parking lot. Real work, deliberately not aimed at a release yet β entry into a version is an explicit act, not a drift. Holds the framework bets (SolidJS, React, Vike, Quasar, Lit), the standing toolchain track, and upstream items that are worth doing but not worth scheduling. Formerly "Larger bets".
No due dateβ’6/30 issues closed