Tasks Backlog and tracking for tiny-pattern-ts. Managed in vscode-todotasks format. --- Setup: ✔ Add gitea release page in CI @high @done ☐ Manually verify the Gitea release page on a real tag push (needs main) @high ☐ Split off template into separate package => pi --session 01a07dde-7050-7054-bb36-1606d7eb2bc3 @high v1.0: ☐ API surface is stable and fully typed ☐ Finalize public exports in `src/index.ts` ☐ Document all exported types and functions ☐ Add JSDoc for public APIs ☐ Test coverage meets threshold ☐ Achieve 100% branch coverage on `src/pattern.ts` ☐ Achieve 100% branch coverage on `src/match.ts` ☐ Achieve 100% branch coverage on `src/index.ts` Bugs: Enhancements: Documentation: ☐ Add usage examples to README.md ☐ Create `examples/` directory with runnable snippets ☐ Add comparison section vs. other TS pattern-matching libs ☐ Write migration guide for users coming from discriminated unions ☐ Create backlog tasks for implementation Maintenance: ☐ Serve CI coverage over a tiny self-hosted webserver (replace the zip artifact) @low ✔ Add a minimal dir-listing webserver to the gitea docker setup (e.g. caddy `file_server browse` reusing the existing reverse proxy, or any single-binary static server, lipanski/docker-static-website) @done (9/13/2026, 9:02:37 PM) ✔ drop the `actions/upload-artifact` coverage step in favour of the shared-dir layout @done (9/13/2026, 10:37:22 PM) ☐ Explore serving coverage for non-tag pushes (e.g. `main/coverage`, PR previews) @low ✔ Manually verify the coverage was created on a real tag push (needs main) @low @done (9/14/2026, 1:55:03 PM) → design: no deploy step in CI; the webserver just exposes the shared directory (decided over Gitea Pages / Codecov — neither confirmed available/ wanted) ☐ serve docs over self hosted server @low ☐ Add a minimal dir-listing webserver to the gitea docker setup for serving docs (reuse existing reverse proxy) ☐ CI writes docs to a shared volume keyed by project + tag (e.g. `/docs/tiny-pattern-ts//`) ☐ Browse to `…/docs///index.html` in the browser ☐ serve landing page over self hosted server @low ☐ Add a minimal dir-listing webserver to the gitea docker setup for serving landing page (reuse existing reverse proxy) ☐ CI writes landing page to a shared volume keyed by project + tag (e.g. `/landing/tiny-pattern-ts//`) ☐ Browse to `…/tiny-pattern-ts/index.html` in the browser ✔ Stop Gitea CI re-downloading Node on every job @done ✔ Share the warm npm cache with the publish job @done ✔ Bake Node into the CI job image (docker/Dockerfile, container.image in ci.yml) @done ✔ Build/push gitea.e1nsnull.de/tmu/act-ci:26.8.2 and confirm setup-node skips the download @done ✔ Write the `/x64.complete` marker — actions/tool-cache ignores a bare directory, so the probe missed and the download continued @done ✔ Log tool-cache state from the job container to find it (temporary, removed once understood) @done ✔ Guard the invariant in CI (`Assert the baked tool cache is present`) @done ☐ Enable force-pull for the runner so a changed act-ci image is never missed @low → the tag encodes only the Node version, so a Dockerfile change yields new content under an unchanged tag; with `forcePull=false` the runner keeps the old image (see CONTRIBUTING § CI runner image) ✔ Improve CI publish @done ✔ Check whether publish job is only run on tags, if not, guard it @done ✔ Gate only single steps @done ✔ Do not publish to npm, if NPM_TOKEN is not set (e.g. PRs from forks) @done ✔ Do not publish to Gitea, if GITEA_TOKEN is not set (e.g. PRs from forks) @done ✔ Otherwise run the steps @done