Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,12 @@ updates:
- dependency-name: '@huggingface/transformers'
versions:
- '>=4.3.0 <4.4.0'
# V52.3: TypeScript 7 typechecks this code with 0 errors, but
# typescript-eslint 8.71.1 only supports TypeScript <6.1. Lift this when
# it does; until then a weekly PR would only fail the lint.
- dependency-name: typescript
versions:
- '>=7.0.0'

- package-ecosystem: github-actions
directory: /
Expand Down
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,12 @@ entry per wave, newest first; the first six waves (V1–V6, the MVP) predate the
are recorded in PLAN.md §B and §J. Each entry carries the opening sentence of its row and
the reason the wave was built.

## V52.3 — TypeScript 7, measured and deferred

The third major, and the one the plan flagged as uncertain.

_Why:_ Approved 09/10/2026 with V52, option chosen by the owner after the measurement. A gate is not removed to make an upgrade fit; the upgrade waits for the gate.

## V52.2 — vite-plugin-pwa 2, and a service worker that did not change by one byte of content

The second of V52's three majors.
Expand All @@ -18,6 +24,12 @@ The first of V52's three majors, each in its own pull request.

_Why:_ Approved 09/10/2026 with V52. The safest of the three majors goes first: the suite it runs is also the instrument that proves it changed nothing.

## V52 — Major upgrades, one at a time, each measured

Three majors, three pull requests, each with the before/after numbers that matter for it: Vitest 5 (V52.1), vite-plugin-pwa 2 (V52.2), TypeScript 7 (V52.3, measured and deferred).

_Why:_ V44's rule: a major update keeps its migration cost visible.

## V51 — A store that fits on a screen

No behaviour change, and the proof is the suite: the 906 unit tests and the 97 Chromium e2e tests that passed before pass unchanged after.
Expand Down
5 changes: 4 additions & 1 deletion PLAN.md

Large diffs are not rendered by default.

9 changes: 5 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -342,10 +342,11 @@ CI builds, tests and deploys on every push: pull requests get a Cloudflare Pages
## Roadmap

Development proceeds in planned "caps" of feature waves; six caps have shipped (MVP
through the lab meeting the real world: real photos, real text, real file sizes). Cap 7
makes what already ships hold up under pressure: worker lifecycle, damaged share links,
CI hardening, metric edge cases and a store refactor are delivered; major dependency
upgrades come next. The full plan, delivery log and design decisions live in
through the lab meeting the real world: real photos, real text, real file sizes). Cap 7 (closed)
made what already ships hold up under pressure: worker lifecycle, damaged share links,
CI hardening, metric edge cases, a store refactor, and major upgrades taken one at a time
(Vitest 5 and vite-plugin-pwa 2 shipped; TypeScript 7 typechecks this code with no error
in 1.5 s instead of about 11, and waits for typescript-eslint to support it). The full plan, delivery log and design decisions live in
[PLAN.md](PLAN.md); [CHANGELOG.md](CHANGELOG.md) is extracted from it — one entry per
wave, newest first — by `npm run changelog`, and a test fails when the two disagree.

Expand Down
7 changes: 7 additions & 0 deletions src/content/docs/en/limits.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,13 @@ decoder accepted crashed the page on 99 distinct paths. A validator that size
would drift with every new analysis; a guard at render time covers them all,
and a test replays the measurement on every run.

**TypeScript 7** (V52.3). Deferred, not dropped. The new compiler, rewritten
in Go, checks the whole project with not a single error, and about seven times
faster than TypeScript 6. But the tool that runs the lint does not accept
that version yet, and the lint is part of the CI gate. A check is not removed
to make an upgrade fit: the migration waits for the tool to support it, and on
our side it will then be a version bump.

## Predictions measurement refuted

This is the most useful category, and the most uncomfortable.
Expand Down
8 changes: 8 additions & 0 deletions src/content/docs/fr/limites.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,14 @@ la page sur 99 chemins différents. Un validateur de cette taille dériverait à
chaque nouvelle analyse ; un garde-fou au rendu les couvre tous, et un test
rejoue la mesure à chaque exécution.

**TypeScript 7** (V52.3). Reporté, pas abandonné. Le nouveau compilateur,
réécrit en Go, vérifie tout le projet sans une seule erreur, et environ sept
fois plus vite que TypeScript 6. Mais l'outil qui fait tourner le lint
n'accepte pas encore cette version, et le lint fait partie de la porte de la
CI. On ne retire pas une vérification pour faire entrer une mise à jour : la
migration attend que l'outil la supporte, et de notre côté elle se résumera
alors à changer un numéro de version.

## Des prédictions que la mesure a démenties

C'est la catégorie la plus utile, et la plus inconfortable.
Expand Down
4 changes: 4 additions & 0 deletions src/lib/supply-chain.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,10 @@ describe('supply-chain automation', () => {
'dependency-name': '@huggingface/transformers',
versions: ['>=4.3.0 <4.4.0'],
},
{
'dependency-name': 'typescript',
versions: ['>=7.0.0'],
},
],
},
{
Expand Down
Loading