Skip to content

Latest commit

 

History

History
478 lines (403 loc) · 29.6 KB

PLAN.md

File metadata and controls

478 lines (403 loc) · 29.6 KB
this_file PLAN.md

Report migration plan

Preserve full practical report behaviour while sharing safe native access.

First three reports pass their original native scenarios on FontLab 9.0.9784, using the installed helper wheel. All-master tables, refresh, selection and signal teardown pass; screenshots reviewed. Source receipts remain in the workspace issue111-reports-v1 evidence directory.

The shared script dialog lifecycle passes all eight original scenarios and actual Close destruction on9784. The Font Info category also passes its native workflows and persistence/Undo acceptance. Retain archived sources until the complete source/destination mapping and final cleanup are reconciled. Additional scripts/reporters and docs remain in workspace verification/issue-111/PLAN.md.

Issue 111 second Reports batch

Five additional reports pass original native scenarios on9784 with42independent checks, screenshot review and owned font/dialog cleanup; live timer stops. Full Scriptmix host-free suite47passes. The native driver restores its source paths and package modules after the run. Corpus/extra tools/docs/cleanup remain open.

Font Info source milestone

All six complete sources share the lazy Fontlabapp panel and bounded edit helper. Native original scenarios, Close, export choosers, screenshots, Undo/Redo and complete before/after VFJ save/reopen pass. Next: the remaining practical tools and broader examples. Archive cleanup requires reconciliation of every original source and retained destination.

Feature migration acceptance

Six complete feature tools pass native workflows, screenshots and Close. Build's complete feature-only VFJ delta, one Undo, Redo and saved reopen pass. All20tools pass183native workflow checks together. Continue the remaining categories; keep all source originals until full archive reconciliation.

Names source milestone

Five Names tools pass original scenarios, native Close, inspected screenshots, complete font-data/history invariance and switched/closed selection refusals. The combined 25-tool run passes 216 workflow checks. Continue the remaining archive tools; clipboard stays native-excluded.

Issue 111 read-only kerning batch

Five tools pass source/fix reviews, installed-wheel native workflows, real CSV chooser callbacks, complete saved-font/history invariance and actual Close. All 30 migrated tools pass 247 workflow checks together. The remaining kerning editors, archive categories and final issue 111 gates remain open.

Issue111 kerning editor source milestone

Five complete source tools now share all-master plans, complete snapshot guards and one batch writer. Host-free tests cover preflight, zero/absence, one owned before/after history batch, numerical rules, invalid cells and stale panels. Source, wording and range-fix reviews pass. Installed-artifact native scenarios, exact complete-font deltas, one native Undo/Redo, saved reopen, stale-font safety and actual Close pass. All35tools together pass280workflow/85preservation checks, 82safety/32writer controls and7export-dialog checks. The host load limit is preflighted before mutation (fl#8522). Full archive cleanup remains gated on the complete migration; this bounded milestone does not finish Issue111.

Issue111 selected Kerning editors

Exceptions Finder and Pairs From Text retain complete controls, manual ticks, class precedence, effective versus explicit values and current/all-master writes. Host-free source tests cover shared plans, stale/refused writes and owned checkbox/Close callbacks. Installed-artifact original scenarios, seeded exception baseline, exact full-font deltas, one Undo/Redo, saved reopening, stale safety and actual native Close pass. All37tools pass301workflow/99preservation checks;94safety,32writer/12postwrite controls and15chooser checks pass. The complete archive migration, cleanup, additional tools/reporters/docs stay open.

Issue111 Proof source milestone

Four complete Proof menus retain original controls, defaults, class/key/global interfaces and independent native scenarios. App shares actual transformed outline assembly, advance-only text, exact word filters, three painters and owned lifecycle. Automatic refresh/paint/Copy stays bound; Grid's explicit Reload adopts current font/selection. Source tests cover stale/read/paint failures and cleanup. Controller source/fix review, artifact audits, original native oracles, screenshots, complete saved-font/workspace/history invariance and actual Close pass. All41core tools pass336workflow/107preservation/123safety checks,80writer/error controls andClose41; separate15realchooser/export checks pass. No original is removed; full130stems/othercollections/cleanup/docs stay active.

Issue111 Masters native acceptance

The four complete Masters tools pass source/fix reviews and installed-artifact native acceptance on FontLab9.0.9784:43original workflows,8complete saved-font/ workspace/history checks,12real paint controls including axis coverage and six-event settling,24opening faults,43stale/positive safety and actualClose4/4. Fresh chart screenshots confirm the713endpoint clipping fix;67exercised source hashes match. Deliberate original post-launch seeds have exact new baselines. App480/actual-wheel Scriptmix413,163installed wheel/163sdist tests and63production file parity pass. All45menu mappings pass; prior41rows/menu bytes remain exact. Separate chooser8+7checks use fix1 artifacts; chooser/common sources are unchanged. The same fix2 wheel passes all41prior tools:336workflows/107preservation/ 123safety/80error controls/Close41, with106source hashes verified and imports restored. Combined45:379workflows/115preservation/166safety/116error controls/Close45. Reviewed integration and D17 tags Appv0.2.11/Scriptmixv1.0.6 are complete. Fresh tags pass App480/Scriptmix413/installed163+163 and all four Masters native gates again;63production files and45menu mappings match. Full Issue111/archive migration/cleanup/docs and held Names editors stay separate; no original removal, owner-site installation or package-index publication is claimed.

Issue111 metrics and outline inspector acceptance

Spacing String Preview, Width Table, Contour Order View and Node Statistics retain complete original controls/interfaces, actual outlines/advances, raw node-polygon winding, contour/node counts and exact flagged selection. Source review approves production; the M1 test-reporting correction uses explicit skips. Installed-wheel native acceptance on FontLab 9.0.9784 passes41 original workflows, 8 complete saved-font/design/classes/metadata/workspace/history/master preservation checks,10 paint,24 opening,59 safety and actualClose 4/4. The unchanged Node post-launch triangle seed has a fresh complete baseline/history before tool operations. All 70exercised hashes and import restoration match; seven inspected images and all 15 final image bytes agree with the retained original run.

Fresh App v0.2.12 clone tests pass 497; stable wheel and sdist each pass 180 installed tests on arm64 Python 3.11.14. All 66 runtime files match and the 72/116 artifact payloads pass license/NOTICE/privacy checks. Scriptmix v1.0.8 source passes 504 tests/1 explicit skip with all 49 original-source pairs audited; its fresh Git-free download passes 503 tests/2 explicit skips in 0.70s. The 73-file archive passes safe-extraction, privacy and all 49 menu/pair hashes. The v1.0.7 test-portability failure and unchanged immutable tag remain in WORK.md.

R053 from the stable installed App wheel and fresh Scriptmix download again passes 41 original workflows, 8 complete font/workspace/history preservation, 10 paint, 24 opening, 59 safety and Close 4/4 on FontLab 9.0.9784. All 70 current hashes and restored imports match; all 15 images match the prior visual receipt. The prior 45-tool regression remains valid on the identical 66 runtime bytes; combined 49 native totals are 420 workflow, 123 preservation, 225 safety, 150 error controls and Close 49. Historical 15 chooser receipts remain separate; no new chooser run is claimed.

Reviewed integration, D17 tags and independent downloaded-tag R053 acceptance are complete: App v0.2.12 (274ce60924f76f4129a8ae43f627659df2634618) and Scriptmix v1.0.8 (dac2f1a81a75de735df4cce1caeb2484f6ab56cd). All 21 older tags remain unchanged. Released scope is 49/130; 81 remain (7 held Names editors and 74 unmigrated stems). All originals are retained. Full archive cleanup, additional tools/reporters/docs and the broader goal remain open. Post-tag receipt metadata review/commit/push is parent-owned and has not occurred in this step. No owner-site install, PyPI publication, GitHub release object or site publication is claimed.

Issue111 read-only Components native acceptance

The five complete L1-only inspectors preserve all original controls, per-master component ordering/counts, placed outlines, missing-base simulation, offsets, CSV filtering and exact usage/selection interfaces. Initial review F1/F2 and native-measured fix2 are resolved: Compatibility retains empty Font-window scope; Count Badges accepts a valid falsey CurrentGlyph using the original explicit None rule, and shared ProofView contains inactive/failed/throwing painter ends. Prior Proof/scripting helper bytes remain unchanged.

Installed-wheel FontLab9.0.9784 acceptance passes33original workflow checks, 10complete saved-font/design/classes/metadata/workspace/history/master checks, 5paint/30opening/80stale/16native painter-boundary/6selection controls andClose5. All81exercised hashes match; imports restore. Eight images were inspected, including the complete eight-glyph/three-row badge canvas and falsey-A fallback. The unchanged Report workflow is split at its CSV checkpoint into two bounded calls; every original statement/order/check remains, without extending deadlines. All failed original/fix1 attempts remain in controller evidence.

Fresh sourceApp506tests, actual-wheel Scriptmix620/1explicit skip, independent 79file Git-free copy619/2explicit skips and installed wheel/sdist189tests each pass on arm64Python3.11.14. All69runtime files match both installed artifacts; 75wheel/120sdist payload entries pass license/NOTICE/privacy audits. All54source pairs pass, with immutable49previous rows and menu bytes unchanged. Same-wheel prior49regression passes420workflow/123preservation/225safety/ 150error controls/Close49;120current hashes and import restoration match. Combined54native candidates pass453workflow/133preservation/305safety/ 201error controls plus6selection controls/Close54. Historical chooser receipts remain separate; this batch introduces no real clipboard or chooser operation.

Reviewed integration and independent downloaded-tag R053 are complete: Appv0.2.13(15d400392863b2e2b288480637a0300229363323) and Scriptmixv1.0.9(a495bea38879732e76ce0d895e1dd3b444c72863). Fresh Appclone506tests and stable wheel/sdist189tests each pass; the Git-free 79file Scriptmix download passes619tests/2explicit skips plus54original pairs. All69runtime files and54menus match the accepted candidate. Stable installed-wheel R053 repeats33workflows/10complete preservation/5paint/30opening/80stale/ 16painter/6selection/Close5,81current hashes and import restoration. Eleven of 12images are byte-identical; the remaining A usage-list image was inspected and correct. All22older tags and protected annotated v0.2.0 dereference stay unchanged. Canonical reviewed code is promoted and pushed. Post-tag receipt metadata differs only in README/PLAN/TODO/WORK; no production changes or new native run are implied. Released scope is54/130;76remain(7heldNames+69unmigrated). All originals remain; full migration/archive cleanup/additional tools/reporters/docs stay open. No owner-site install, package-index publication or GitHub release object is claimed.

Issue111 read-only Anchors source milestone

Cloud View, Compatibility Report and Mark Attachment Preview retain complete original controls, helper/class/key interfaces, rounded frequency/coordinate/ auto-layer/attachment rules and both full native painters. Anchor-specific state extends the existing Components/Proof/Names lifecycle. Native-verified component geometry and None-error paint adapter are reused without changes to prior runtime. Raw anchor values and frozen displayed geometry scopes reject stale data; cached result options are checked before selectors scan their new intended display. Compatibility alone retains its explicit anchor rescan. No-font and read failures leave complete diagnosed closable panels; terminal painter faults clear callbacks and settle empty updates. Source status only: artifact/source review, original native scenarios, full post-seed Compatibility preservation, painting/safety/Close, prior54 regression and release/R053 remain pending. Released54/130 versus57source candidates; held7Names and66other unmigrated stems remain outside this batch. All originals/fullarchive/newtools/reporters/docs remain in scope.

Cloud/Mark require reopening after a published source is invalidated. Only Compatibility retains explicit rescan recovery, with its original selected scope.

Issue111 read-only Anchors acceptance gates

Direct controller review and native fix1 re-run pass. Initial native v1 failed only the owned E activation setup; flPackage.activateGlyph does not select an editor. The documented owned editor signal fixes the fixture. Native v2 passed data checks but screenshot review rejected hidden master columns. A test-first menu fix configures the columns after font binding; both old attempts remain retained. The final image shows every master and missing cell. No original scenario expression, App runtime or previous 54 menus changed for this fix.

Installed candidate wheel on FontLab9.0.9784 passes all three original scenarios: 20workflow,6complete font/design/classes/metadata/workspace/history/master checks, 10paint,18opening,63stale,32painter-boundary,10selection/layout controls andClose3. All80exercised hashes match and import paths/modules restore. Compatibility's owned H/Light probe has its exact post-seed baseline. Valid falsey current E, empty selected scope, independent anchor arithmetic, visible master widths/counts and H's missing-family display are load-bearing. Eleven existing images match v2 exactly; corrected Compatibility images were inspected. Clipboard excluded.

Same-wheel prior54 passes453workflow/133preservation/305safety/201error plus 6selection/Close54,135matching hashes and restored imports. Combined57 native: 473workflow/139preservation/368safety/261error plus16selection/layout/Close57. SourceApp512; actual-wheel Scriptmix684/1skip, all57originalpairs; standalone 83-file Git-free with explicit originals684/1skip. Installed wheel/sdist195each; 72runtime files match,78wheel/124sdist entries pass licence/NOTICE/privacy audit. Controller157pass; scoped Ruff passes. Every previous54manifest row/menu hash is unchanged. Exact commands and failed RED cases are retained in parent evidence.

Release and independent downloaded-tag R053 remain pending. Released54/130; 57native candidates, held7Names and66other unmigrated stems remain separate. All original/archive inputs and broader cleanup/newtools/reporters/docs stay open. No owner-site install, package-index publication or GitHub release object claimed.

Issue111 Anchors release and independent acceptance — 2026-10-18

Reviewed main releases Appv0.2.14 (4f240f67cce47a91b200587fffde3c49f42cb9f2) and Scriptmixv1.0.10 (9aad183619a7e36379fa29b326ca1821cf2aae52) are published. Exact commands: rtk proxy gitnextver -d .worktrees/rel-anchors-app and rtk proxy gitnextver -d .worktrees/rel-anchors-scriptmix, both exit0. Only the reviewed release CHANGELOG was dirty; App used an isolated main worktree and Scriptmix an independent main clone to preserve the owner's live checkout. All24older distinct tags and the protected annotated v0.2.0 dereference remain unchanged (25tag refs). No package-index or GitHub release object is claimed.

Independent fresh GitHub App clone:512tests pass13.34s; stable built wheel and sdist:195installed tests each pass0.26s on arm64Python3.11.14, host-free imports from actual targets. Wheel075983f6dcf7b79ef2274e5252a5f6afc149cbe58457b763d110e5f2fbf5e68e; sdistdabc95cd0dfc5fc61bed6c87ad3891297d71f34a6a4ee178823f710cfcde1a75. All72runtime bytes and57menus match the accepted candidate;78wheel/124sdist entries pass licence/NOTICE/privacy checks. Fresh83fileGit-free Scriptmix archive SHA64d35e4ea1702fde0235d841b2404453f1529ff139f4f80f1a9339ce418c4746: 683tests pass2explicit skips1.13s; all57original pairs audited separately.

Stable-wheel/downloaded-menu R053 on FontLab9.0.9784 repeats20workflows, 6complete preservation,10paint,18opening,63stale,32painter,10selection/layout controls andClose3. All80current hashes match; paths/modules restore. All14 screenshots are byte-identical to the accepted candidate images. Corrected Compatibility master columns/missing cells and nondefault falsey E/H outcomes remain load-bearing. Same-byte prior54 already passes; combined57 native totals 473workflow/139preservation/368safety/261error plus16selection/layout/Close57. No further native run is implied by the receipt-only metadata update.

Evidence: workspace verification/issue-101-ecosystem/evidence/issue111-release-v10. Post-tag README/PLAN/TODO/WORK/NOTICE receipt delta is reviewed separately before canonical promotion. Released57/130;73remain(7heldNames+66unmigrated). All original and archive inputs remain; whole migration/additionaltools/reporters/docs stay open. No owner's site-packages or user documents were changed.

Issue111 Task3p read-only reviews — source work in progress

Retain Select Unreferenced Glyphs from the byte-identical C4 family and Interpolation Preview from the L1 family with the defensive palette fixes. Keep every original candidate rule, helper/result interface and diagram/control. Use the established Anchors/Components/Proof lifecycle through narrow review subclass overrides. Four new helper/view modules and six appended lazy aliases leave all prior runtime bytes intact except the scripting facade suffix. No new dependency is introduced. All57prior manifest rows/menu bytes stay exact; two source mappings bring the candidate total to59, while57/130remain released.

Unreferenced-glyph reads reuse verified FontGate encodings instead of unsafe flGlyph.fgGlyph. Source snapshots retain features, class flags/records, ordered Unicode values, all-layer component references and recipes. Missing glyphs and encoding-order races fail closed. Included FEA files still refuse the scan. Interpolation retains complete placed endpoint contours, node flags, unrounded blend, all controls, compatibility messages, quadratic/cubic paths and full original dashed endpoint/mixed-outline/on-curve-dot painter. Bound choices are populated only after all controls/status/Close exist. Cached result corruption, stale font/master/membership/reference/geometry and blocked option changes refuse publication/actions. Published invalidation requires reopen; native acceptance is still pending, including actual screenshot review and complete preservation.

TDD: missing modules first fail collection, then20core cases pass0.01s. An extra RED restored the original current-glyph fallback after Font-window read errors. The first missing-module import accidentally invoked the package's native getattr; tests use explicit import_module thereafter. SourceApp532pass12.97s. Two missing menu tests first RED; initial UI fixtures first lack new modules, then NoFocus; add the native-shaped constant. Core helpers plus real menus now pass23 scoped UI cases0.10s: no-font/late choices/Close, ten actual-slot stale cases, initial scan faults, full painter/failure, corrupted cached results and blocked slider paint. Painter fixtures first lacked path drawing; add real-shaped path operations/bounds and pen methods. A mistaken attempt to assign read-only rect was removed. The original generic slider double emitted while blocked; a scoped slider now honors native blockSignals behavior. These are fixture corrections, not native host or product bug claims. Ruff preserves public helper re-exports.

Exact prefixes: rtk proxy env UV_PYTHON=cpython-3.11-macos-aarch64-none UV_LINK_MODE=copy ./test.sh -q in the App worktree; rtk proxy env SCRIPTMIX_APP_SOURCE=../issue111-readonly-tail-app/src/fontlabapp SCRIPTMIX_APP_REQUIREMENT=../../.local/issue111-app-v0.2.14-dist/fontlab_fontlabapp-0.2.14-py3-none-any.whl SCRIPTMIX_PYTHON=cpython-3.11-macos-aarch64-none UV_LINK_MODE=copy ./test.sh in Scriptmix, with -k readonly_tail --tb=short or --original-source-root ../.. -rs. Earlier full Scriptmix source state703passed1skip1.17s; the final source suite must be repeated after subsequent cases/formatting. New59mapping invariant first RED57!=59, then append only the two exact source/menu SHA pairs. Keep literal 45/49/54controls and add independent57digest; only previous current-count checks advance to59. Standalone Git-free/review/artifact/native2/prior57/release/R053 are pending. No new commit, canonical promotion, owner install or original removal.

Whole130migration,7heldNames,64otherunmigrated stems and full archives/newtools/ actual glyph-canvas reporters/docs remain open. Live Node Coordinates follows in its own batch with real timer/lifecycle evidence and fake clipboard only.

Issue111 read-only glyph reviews: accepted candidate — 2026-10-18

Direct source review and the native fix1 gates pass for both complete tools. The unchanged Rafi oracle caught an original-sample bug: fgOTLayout iteration returns feature code, while get_feature expects tags. The initial787candidates included392referenced glyphs; the independent original/VFJ and native saved baseline both predict395. Correct the reader to iterate explicit keys(). The native-shaped regression first fails, then passes; retain an explicit SIM118 exception because this native object is not a Python dict. C++ source: pyfontgate/fgotlayout.cxx114-122,223-233,245-260. No FontLab host defect is claimed. All original sources/scenarios stay unchanged; no candidate/oracle weakening.

Installed fix1 wheel on FontLab9.0.9784:10original workflow checks,4complete font/design/classes/metadata/workspace/history/master checks,5paint,12opening, 39stale,16painter-boundary,6selection/default-layout andClose2 pass. All86current source hashes match and module/path restoration passes. Rafi's actual list and selection are exactly395; O50/O25 numerical oracles and a80 render pass. The real falsey current E and empty Font-window selection preserve whole-font cleanup scope and E-only interpolation. Native probes change actual owned feature source, node x22to35 and advance554to567; stale results refuse and settle. A scratch VFJ adds an unencoded H copy through ordinary file loading, avoiding native fgGlyph insertion. Original/archive inputs are never overwritten. All seven images were inspected, directly or as exact copies of inspected v2 images.

Same-wheel prior57:473workflow/139preservation/368safety/261error plus16selection andClose57,145matching hashes/restored imports. Combined59 native: 483workflow/143preservation/407safety/294error plus22selection/layout/Close59. App533source tests pass13.00s; actual fix1wheel Scriptmix707pass1skip1.01s with all59originalpairs; standalone86fileGit-free actual-wheel706pass2skips1.16s. Both installed wheel/sdist pass216tests0.27s each on arm64Python3.11.14 with host-free helper imports from their actual targets. All76runtime bytes match; 82wheel/130sdist entries pass licences/NOTICE/privacy. Previous72runtime remains 71exact files plus the unchanged scripting facade prefix; previous57menus/rows and literal45/49/54/57invariants stay exact. No dependency was added.

Wheelb4ac3d262cefbd95519829e89ca133e32788214b0c8b8e0f60894c8a3efb0654; sdist5172a0f824b6ec8373a1665f274e15a8a91f21495c79169eb63dff56c8f55cde. Rootcontroller176tests0.21s and scoped Ruff pass. Five enabled-failed controls first RED, then fail actual aggregation correctly. Owned fixture no-overwrite, original routing/full-workspace, mutation/instrumentation and selection negatives are exercised. No real clipboard, owner documents/preferences/Output or live site-packages are changed. Current published scope57/130;59native candidates await reviewed integration/D17 and independent downloaded-tag R053. Held7Names, 64otherunmigrated stems, archives/newtools/actualcanvasreporters/docs stay open. Evidence: workspace issue111-readonly-tail-v1 failure, v2 correction, v3 full controls and issue111-core57-reviews-v1, under the standard verification evidence folder. The initial failed native trial and pre-fix artifacts are retained.

Issue111 glyph reviews release and independent acceptance — 2026-10-18

Published Appv0.2.15 (f819f3f72ecaa06428b2b60e4785f5699a58e568) and Scriptmixv1.0.11 (de5473904637daca77b14d8eff60665f7fcf22ee) pass R053. Exact commands rtk proxy gitnextver -d .worktrees/rel-reviews-app and rtk proxy gitnextver -d .worktrees/rel-reviews-scriptmix exit0. Only reviewed release CHANGELOG files were dirty in isolated main checkouts. All26older distinct tags, including protected v0.2.0 and its annotated dereference, remain unchanged (27older tag refs). No package-index or GitHub release object claimed.

Fresh GitHub App clone533tests pass13.40s; actual installed wheel and sdist 216tests each pass0.27s on arm64Python3.11.14. Host-free helpers import from actual targets and distribution metadata reports0.2.15. Stable wheel e53ee6962585b201059b1a0f2055c05c7c9e7da8769bc914d7e9c8024c01bdc8; sdistd20fd72aee45036b76c2f17b1d28c8e7feeb3dc6b3daf0fa706d56c6bb42c98b. All76runtime bytes and59menus equal the accepted candidate;82wheel/130sdist entries pass licences/NOTICE/privacy. Fresh86fileGit-free Scriptmix download SHAcfcb7cb8c078be9e49e06ad680a47c0410170399bfd8431dee0edc6641dec13c: 706tests pass2explicit skips1.20s, all59original pairs audited separately.

Stable-wheel/downloaded-menu native acceptance on FontLab9.0.9784 repeats 10original workflows/4complete preservation/5paint/12opening/39stale/16painter/ 6selection-layout/Close2,86matching current hashes and module/path restoration. All7images exactly match the reviewed candidate. Correct Rafi395candidate list and selection, O50/O25 and actual a80/E rendering, real falsey-current E and owned feature/node/advance drift remain load-bearing. Same-byte prior57passed; combined59native483workflow/143preservation/407safety/294error plus22selection/ layout andClose59. The old native787candidate failure and pre-fix artifacts stay retained. No further native run is implied by post-tag receipt metadata changes.

Evidence: workspace verification/issue-101-ecosystem/evidence/issue111-release-v11. Post-tag README/PLAN/TODO/WORK/NOTICE metadata is reviewed before canonical promotion. Released59/130;71pending(7heldNames+64unmigrated). All original/archive inputs remain and whole migration/additionaltools/actualglyphcanvasreporters/docs stay open. No owner documents/preferences/Output/clipboard/site install changed.

Issue111 live Node Coordinates

Preserve the complete L1 timer/coordinate/pair/Copy behavior on shared owned lifecycle. Bind font identity, follow actual glyph/master/node edits, clear failed reads and recheck Copy. Source/artifact/native/prior59/D17 and independent downloaded-tag R053 pass. Released60/130 with Appv0.2.16/Scriptmixv1.0.12; full archive/held7Names/additional tools/reporters/docs remain open.

Issue111 compact Master Switcher

Preserve original master/location buttons, axis order, first9shortcuts and explicit package-master action. Reuse guarded owned Masters shell; require complete source/artifact/native/prior60/D17/fresh-tag R053. These gates pass with Appv0.2.17/Scriptmixv1.0.13. Released61/130; remaining69 and broader scope stay open.

Issue111 complete guide panels

Retain Font Guides Panel, Grid Generator and Metric Reference Lines completely; require artifact/native saved geometry/fullfont Undo/Redo/reopen, actual source/ selection/paint/lifecycle/refusal controls, prior61 regression and reviewed D17/ fresh-tag R053. All gates pass with Appv0.2.18/Scriptmixv1.0.14, including downloaded-tag R053. Released64/130;66pending and the full broader scope remain open.

Issue111 complete guide rewrite editors

Retain all three original editor interfaces, complete native guide properties and hints, source/selection/master refusal, wholefont oneUndo/Redo/reopen from postseed baselines, originalGUI oracles and Close. Require artifact/installed checks, prior64 regression, reviewed release and independent fresh-tag R053. All gates pass with Appv0.2.19/Scriptmixv1.0.15 and downloaded-tag R053. Released67/130;63pending and all wider tasks remain open.

Issue111 Copy Anchors From Glyph

Preserve complete L1 source completion/merge-replace/width/current-all workflow. Installed candidate passes original/fullfont/history/reopen/native controls. Retain guards for measured automatic-dependent Undo and origin Redo defects. Require final artifact/native/prior67 review, D17 and fresh-tag R053 before release. Other8anchor editors and all broader issue111 work remain pending.

Copy Anchors closure: Appv0.2.21/Scriptmixv1.0.17 downloaded-tag R053 and all artifact/native/visual/prior67 gates pass. All14images compare to the inspected fixed candidate, with four cursor-only blink differences. Earlier numerical-pass v0.2.20/v1.0.16 tags remain intact but were withheld from canonical promotion after visual rejection. Released68/130; other8Anchor editors and all broader issue111 goals remain open.

Isolated read-only milestone

Base only on reviewed main1d0086d. Add the two additional read-only menu leaves, consumer contracts and separate metadata records. Preserve all68 original sample rows, menu bytes and the two released reporter entries. Require full consumer tests, entire changed-module coverage at80percent, installed App artifact native controls and prior68 regression, payload review, D12/D17 and downloaded-tag R053. Do not promote neighboring held editor/archive candidates. All broader work stays open; canonical Contours rename and rescue state remain preserved separately.