Add frozen legacy version served at /legacy/ - #367
Merged
Merged
Conversation
Snapshots the pre-2026-rush release (tag v1.0.1) as static files under site/legacy/ and serves it from the same origin at /legacy/, so the old ASCIIFlow stays reachable and shares localStorage with the current app. - site/legacy/: built output of v1.0.1 (webpack bundle + assets), with absolute /public/ asset refs rewritten to /legacy/public/ so the snapshot is self-contained regardless of trailing-slash behaviour. Both versions use HashRouter, so no base-path/router config is needed. - site/BUILD: copy the snapshot into the deploy output, so `bazel build site/...` emits bazel-bin/site/legacy/ alongside the new app. No CI/deploy.yaml change required. - client/toolbar.tsx: add a "legacy version" link in the help footer. - site/legacy/index.html: add a "switch to new" link back to /. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
lewish
enabled auto-merge (squash)
June 24, 2026 20:52
lewish
disabled auto-merge
June 24, 2026 20:58
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Keeps the previous version of ASCIIFlow reachable at
/legacy/, served from the same origin as the current app so the two sharelocalStorageautomatically.How
site/legacy/— the built output of tag v1.0.1 (webpack bundle + assets), committed as static files. Absolute/public/...asset refs rewritten to/legacy/public/...so the snapshot is self-contained regardless of trailing-slash behaviour. Both versions useHashRouter, so no base-path/router config is needed to host it under a subpath.site/BUILD— alegacycopy target drops the snapshot into the deploy output, sobazel build site/...emitsbazel-bin/site/legacy/next to the new app. Nodeploy.yamlchange required (CI already buildssite/...and copiesbazel-bin/site).client/toolbar.tsx— adds a "legacy version" link in the help footer.site/legacy/index.html— adds a "switch to new →" link back to/.Testing
bazel build site/...emits both apps (new at root, old underlegacy/)./→ 200,/legacy→ 301 →/legacy/→ 200, all legacy assets (incl.logo_min.svgfrom the bundle) → 200.//client:all+//common:allunit tests pass; new bundle type-checks with the link.Notes
asciiflow.com. Subdomains (e.g.beta.) keep separate stores by nature.Layerv2 serialization, and the share encoder are identical across v1.0.1 and the current app (the Zustand refactor preserved the on-disk format), so saved drawings, undo/redo stacks, and share links round-trip both ways. The only divergences are benign — the new-onlyshowGridview preference (silently ignored by the old app) and cosmetic font geometry (offsets are translated, so view position is preserved). The old app also wraps deserialization in try/catch and falls back to an empty canvas, so nothing corrupts.🤖 Generated with Claude Code