Repository navigation
feat(B42): icon-group palettes, clean Studio workspace and user MiKTeX server QA - #91
Conversation
…d persisted workspace preferences
…udio toolbar to egui
…ons and existing guide
…tstrap-only status
…d source-safe placement
|
Integrator QA checkpoint on exact #91 head
Hosted MiKTeX 41415396713 and N1 41415396711 are green but do not override these merge gates. Keep B42 in existing PR #91; no parallel edits to B-owned branch from integrator.
|
N1 integrator handoff — I61 actual-B42 QA re-lease, 2026-11-02No production edits or merges. Main New exact QA run 41449047973: verified exact B42 source-tree lease PASS, four offline positive/negative all-font Exact B42 core CI/Rust 41445054395, D QA 41445054340, N1 generated-source XeLaTeX 41445054389, hosted D06 MiKTeX 41445054366, Unicode/fonts 41445054327 are now all completed SUCCESS. Red I51/I57 on that SHA are hard-coded old B41 tree guards before GUI, NOT tested B42 product failures. Do not disable them merely to paint CI green: after I61 actual acceptance replace/retarget in one coherent integration step with real Save/Open/Undo/Help/PDF + exact provenance. Until original I61 artifact and the remaining N1 real-GUI Save/Open/Undo/help are independently accepted, #91 and #92 remain draft and merge is blocked. Physical Windows 10/MiKTeX, Mac ARM M1/M4 and user Windows Server GUI remain NOT_RUN. |
|
N1 tangible GUI milestone (2026-11-02): current B42 HEAD Accepted subvertical: 6 real GUI pointer/icon tools → 6 native TikZ lines saved to |
B42 stream-B freeze / exact-head verification — 2026-11-02No B code changes, no new PR and no merge in this checkpoint. Re-read current
B lane status: FROZEN / NO CODE CHURN. #91 and #92 remain draft, do not merge yet. Only reopen B for a reproduced blocking product defect, with failing test first, one substantive fix and a renewed exact-tree QA lease. |
…ce/PDF regression
… dirty Cancel; bound apt mirror stalls
|
Integrator handoff (2026-11-02): frozen #91 app/src |
B42/I62 correction — earlier coordinate diagnosis withdrawn (2026-11-02)The previous claim in this comment was wrong. I re-downloaded the original I62 artifact 13154818704, verified ZIP CRC and 54/54 report.json SHA-256 entries, and visually inspected original 1440×900 screenshots 33/34/35. The earlier assertion that the QA driver clicked the label instead of the text field and then the text field instead of Open must not be used to change the driver. Actual popup geometry in screenshot 33 (SHA-256
What is actually demonstrated: screenshot 34 already has the popup closed after pointer/click + Ctrl+A + paste, with unchanged figure.tex. Screenshot 35 after Open is byte-identical to 34 (SHA-256 Bounded D-owned next repro: capture popup and X11 focus after Frozen provenance: main |
|
Integrator correction / do not propagate incorrect I62 coordinates. The original 1440×900 |
N1 P0 — source-proven ROOT CAUSE of B42 File → Open path collapse (integrator handoff, 2026-11-02)Do not change test coordinates. Re-read exact refs: main Exact dependency-level proofProject Single B-owned production fix within existing #91 — unfreeze intentionally, then RE-freezeReplace only Require a B-owned real egui RawInput press/release regression: open File menu; click inside path TextEdit; type a distinct second path; prove menu stays open and field changes; click actual Separate release gatesConnected N2 library states and same-C Russian help must remain independently checked (I61 currently does NOT cover real library connect/disconnect); hosted Windows Server MiKTeX does not prove physical Win10, Linux TeX Live does not prove Mac ARM. No merge at this checkpoint. |
B42 P0: File popup focus defect — updated exact SHA (2026-11-02)The reproducible I62 real Linux/X11 failure (File menu closes when focusing the path TextEdit, despite correct coordinates) is explained by the locked egui 0.33.3 default Correct final current HEAD after hosted formatter/compiler corrections: Merge HOLD and B freeze from here: D #92 remains based on OLD B HEAD |
I63 integration checkpoint — B freeze honouredConfirmed frozen B |
Frozen B42 source + independent real Studio six-gestures/Save/Open/CRLF/dirty Cancel/Inspector Apply/F1/Undo/external XeLaTeX PDF and original 69/69 SHA audit. Physical Win10/Mac ARM NOT_RUN; staged PR only.
B42 stream-B exact-head checkpoint after I64 QA merge (2026-11-02 UTC)Fresh refs read: Accepted independent evidence against unchanged B production tree: I64 actual hosted Linux/X11 run 41506898550 SUCCESS at #92 premerge HEAD New merged #91 HEAD exact-CI not yet accepted as of this note: Rust CI 41507862642, D QA 41507862694, I61 real X11 41507862704 are in progress. Font and Studio-bootstrap-only jobs are SUCCESS; they cannot substitute for full I64. Previous B code HEAD Please preserve the B production source tree, avoid further B churn, and make the #91→main decision only after exact new SHA CI/QA is green. Old I51/I57 B41-tree pre-GUI FAILs remain stale gates, not regressions. Physical Windows 10/MiKTeX and M1/M4/XeLaTeX NOT_RUN; no silent TeX substitute. |
N1 Linux/X11 integration acceptance — exact head
|
B42 N1 merged to main — post-merge checkpoint (2026-11-02)Actual GitHub merge: PR #92 QA merged into #91 first, then integrator marked #91 ready and merged it with GitHub's Separate post-merge CI actually triggered automatically by Main release blockers remaining: (1) N2 libraries in the new Studio dock real X11 Connect→Disconnect→Undo and five independent states: the old B41 I53/I57 hardcoded-tree test was retired from auto-main, not proof of B42 N2; I64 report Post-merge integration resolution — 2026-11-02, main
|
Post-merge N1 acceptance & portable physical-smoke handoff — 2026-11-02Fresh repo truth: Exact-main postmerge CI now COMPLETE, not merely IN_PROGRESS
Tangible build outputs for physical smoke (NOT an installer/release)Downloaded Windows native CI artifact 13172152993 and macOS native CI artifact 13173272049. Verified complete GitHub artifact digests, individual binary SHA-256 and PE32+ x86-64 / Mach-O arm64 headers. Created portable, unsigned, not-notarized and uninstalled physical-smoke bundles locally with unchanged release-profile app+CLI binaries, SHA256SUMS, provenance, noninstalling smoke scripts, sample .tex and explicit NOT_RUN target-host checklist. No TeX packages, fonts, renderer, drivers or hidden installer bundled. Not published as GitHub Release; local portable bundle SHA-256: Win10-x64 ZIP Next SINGLE critical path, not old B41 CI/UX churnN2 + N3: the B38/B41 historical four-library real-X11 driver and hardcoded app-tree guard are not proof for current B42 Studio; current I61 correctly marks No new PR, production edit, workflow_dispatch/rerun or merge made in this check. No new main commit was created to preserve exact-head evidence. Future accepted N2 functionality change must synchronize code/tests/plans/insights/CHANGELOG; release documentation README/ROADMAP still contains historical W01 wording and should be corrected with that substantive change, not a separate docs-only CI churn. N2 code-grounded integration contract — 2026-11-02 post-merge auditFresh source/release evidence: main N2 exact-code gap, not an unexplained failed CI: current Studio Library panel explicitly passes N2 scope discrepancy: C catalogue and source patcher limit safe automatic adapters to exactly four names: One substantive next implementation+acceptance block, not CI churn: agree N2 release slice before code; cover either (a) four currently implemented library adapters as explicit first N2 subrelease, with shapes recorded separately, OR (b) add supported N2 cross-contract integration discovery — 2026-11-03, main 3fb25caA material integration pitfall, not another B-only UI tweak. At exact current main, `tikz_libraries.rs` passes `Evidence::Unknown` for every C library. A naïve fix `probe_package("tikzlibrary" + library.name + ".code.tex")` would be wrong: the declared `arrows.meta` library is resolved through `pgflibraryarrows.meta.code.tex` on the local TeX Live 2025/dev installation (verified via read-only `kpsewhich`); `tikzlibraryarrows.meta.code.tex` is not present there. By contrast, `positioning`, `calc`, `fit`, and `shapes.geometric` use `tikzlibrary.code.tex`. These observations concern this local TeX Live only, not the user's MiKTeX/Windows or Mac. Do not infer per-library installation from `tikz.sty` or fabricate filename conventions. Model a verified catalogue-owned mapping/list of probe files per library, and test the special PGF-level arrows.meta case. Keep installation `UNKNOWN` when evidence absent or selected-engine probe unavailable; do not convert a lookup failure to ABSENT. Separate current source-code defect to address in the SAME substantive N2 integration: `Registry::status(&tex)` at `crates/tikzarium-extensions/src/lib.rs:214-218` first requires `tex.kpsewhich.is_some()`, then maps `tex.package_file(...).is_some()` to true/false. But `TexEnvironment::probe_package` (core `discovery.rs:173-220`) intentionally uses a safe `findtexmf` next to the selected MiKTeX engine and a near-engine `kpsewhich` for TeX Live, with three outcomes `Present/Missing/Unavailable`. Thus a MiKTeX installation with usable `findtexmf` but no `kpsewhich` can be incorrectly displayed UNKNOWN, while probe Unavailable can be mislabeled NotLocated. This is a static code-path defect, not yet a reproduced physical MiKTeX user failure. Correct the registry bridge by mapping the existing tri-state `PackageProbe` (Present→Some(true), Missing→Some(false), Unavailable→None), eliminating the unnecessary global kpsewhich precondition; regression test explicit MiKTeX findtexmf-only and unknown-probe cases. Do not call any probe from `egui` frame repaint. Cache bounded read-only results once for an explicitly selected engine, refresh on user's request, and never install or silently substitute TeX. Consider existing `probe_package` synchronous process lifetime/bounds before adding more lookups. Upstream shapes scope correction: the current PGF manual §71 calls umbrella `shapes` a compatibility-only library and recommends direct sublibraries such as `shapes.geometric` and `shapes.misc`. N2 should expose a useful sublibrary with its actual `\usetikzlibrary{shapes.geometric}` declaration, documented diamond/ellipse example, requirement/help entry and independent tool=ABSENT until a real adapter exists; do not claim plain `shapes` or a native shape tool from catalogue presence. This refines, rather than drops, the ROADMAP's shapes family. ONE combined release slice, no CI-only PR: (1) correct A/C discovery/probe truthfulness and C per-library probe metadata, including the arrows.meta exception; (2) integrate cached independent installed/project-loaded/engine-target/tool/help into Studio with reversible source patches for existing four libraries plus one manual-verified `shapes.geometric` entry if release scope allows; (3) verify real current-Studio X11 library click → Connect → minimal preamble diff → Undo/Disconnect → Save/Open → external XeLaTeX PDF, Cyrillic/opaque/CRLF preservation and one offline Russian C-help search; (4) original source/PDF/PNG/log/probe provenance and SHA manual review; exact-head CI then expected_head_sha merge and separate postmerge; update code+tests+plans+insights+CHANGELOG together. Do not reactivate old B41 scripts, clone TeX parsers, or mark physical Win10/M1/M4 PASS. If adding shapes.geometric would delay an otherwise complete four-library N2 slice, explicitly split into N2a (four libraries + truthful install evidence) and N2b (shapes.geometric), not indefinitely postpone N5 physical release. |
B42 verified current HEAD — 2026-11-02 11:33 UTC
Draft, NOT merged. HEAD
ee6ba68b28c63dcad326f9bf3713e0d9cbc03a8c, base main93db2044b5b91f79c0e774be8806a3693ba7329b, app/src tree736a6d44e19158d9e7936debe613e89a028e877e.New actual
egui::RawInputevent-frame test clicks grouped palette icons for all six shared C native tools; selection and popup closing do not rewrite opaque/CRLF source or push Undo. Tests wait one render frame for newly opened foreground Area hit testing; no alternate generator. Fix real egui panel-order defect: full-width Studio status panel must reserve space before editable code/guide and optional diagnostics; test at 850×560 / 1366×768. Only B sources/plans/insights changed. Ubuntu hosted D QA: rustfmt, 105/105 app and 56/56 core tests, strict Clippy PASS on this exact HEAD. Rust CI, Windows/macOS matrix and independent D I61 full X11 not yet accepted; Studio bootstrap only verifies actual window/group popup. Physical Win10/M1/M4 NOT_RUN. Do not merge #37/#43. D PR #92 must re-lease to new B tree.B42 latest exact-head B-lane QA — 2026-11-02
Draft, not merged. Head
8792995135474dbe2cb13d79b0607a582868c078above unchanged main93db2044b5b91f79c0e774be8806a3693ba7329b; app/src tree0322d64b0a2d9ed542566bd635d6fbddffc7cfa1. Production fix: reserve a full-width Studio bottom status row before side/source/center/optional diagnostics (rather than late after CentralPanel). Event-frame regression at 850×560 / 1366×768 checks source and guide don't overlap status; six actual grouped C tool icon selection Response click events with unchanged CRLF/macros/Undo are also included. B-owned code and plans/insights only. Initial rustfmt mismatch from1aa79bb…was repaired on this HEAD. Exact-head Rust CI, D QA, B42 X11 bootstrap are not yet accepted; independent full D I61 #92 must re-lease to this app/src tree. UNIT_EVENT ≠ full X11/physical Win10/M1/M4.Latest B42 B-owned code + test snapshot — 2026-11-02
Draft / no merge. Head
1aa79bb8112997b3907089a965d6dedccc375f5aon main93db2044b5b91f79c0e774be8806a3693ba7329b; B app/src tree56e1a8a1fdd7ada8aa36688c2fc38c9caf726460. B42 now includes actual egui grouped-palette selection RawInput frames for six C-native tool icons AND an order-correct full-width Studio status bar reserved before the side/editor/guide panels, with RawInput overlap/TeX-integrity checks at 850×560 and 1366×768. Only B production files plus B plans/insights changed; no C generator/TeX replacement. Rust CI, D QA, Studio bootstrap still require exact-head completion. Actual D I61 #92 must be rebased/released against this source tree. UNIT_EVENT != actual X11 and != Win10/M1/M4. No merge of #37/#43.Latest B42 exact-head checkpoint — 2026-11-02 11:2x UTC
Draft — no merge. Fresh base main
93db2044b5b91f79c0e774be8806a3693ba7329b; current PR HEADcfa0d8dda4e07293b66aac1b4982f5026bca9e1a, B app/source treef3b5937637a52478016f251089b31cd900ce5189.Beyond prior B42 Studio work, this HEAD adds a real egui RawInput pointer group + individual C tool icon click regression for Geometry/Connections/Text and all six native primitives at 850×560 logical resolution. The new test measures the production Response rectangles, dispatches real group/palette click handlers and validates selected Tool, popup dismissal, unmodified CRLF/Russian/opaque source and no Undo entry. It is UNIT_EVENT, not X11/Win10/M1/M4. Existing separate six-gesture native guide test still covers actual guide source patches. No C registry/generator or A/D/E/F production file is changed; plans/insights updated in this PR.
The first HEAD
ac8f609…returned exact rustfmt diagnostics; all three differences were corrected atcfa0d8dda4e07293b66aac1b4982f5026bca9e1a. Latest exact-head CI is not yet accepted: Rust, D QA, Studio bootstrap, hosted MiKTeX. Old B41-specific I51/I57 pre-GUI guards cannot establish B42 gesture results.Independent D I61 #92 was still stacked on older
dadd05b…and must re-lease to new app tree for true X11 six-gesture/Save-Reopen/Undo/F1/XeLaTeX PDF validation. Dedicated user Windows Server and physical Windows 10, M1/M4 are NOT_RUN.B42 B-lane integration checkpoint — 2026-11-02 08:5x UTC
Draft, not merged. Base main
93db2044b5b91f79c0e774be8806a3693ba7329b; exact current PR HEAD88877297726b0d788108e995b4dbec3e4bb22d92. No A/C/D/E/F source changes; this is the existing #91, not another micro-PR.B-owned development added:
egui::Context::run(RawInput)pointer down/move/release test for the six C-catalogue primitives at 850/1366 logical widths; verifies one authored command, selected line, source-preserving F1, disk Save/Reopen and byte-exact visual Undo. UNIT_EVENT only, tool selection is injected in this particular test, not an independently proven clicked Studio popup.SplitPanelLayout::source_defaultalthough the source SidePanel is resizable. Fix uses the actual source SidePanel response rect and closes/hides palette when the tool rail is hidden. Measured boundary regression at 240/475 pt.Session::helpoff while leaving Help tab visibly unchanged. It now returns to Properties; new real-keyRawInputpress/release regression verifies tab transition and source integrity.plans/andinsights/in the same PR. Previous hosted rustfmt diagnostic was corrected on the intermediate branch; latest exact-head CI must still pass independently, not inherited from older SHA.Latest exact-head CI (at checkpoint, queued / not accepted):
CI,
D QA,
B42 Studio X11 bootstrap,
N1 XeLaTeX,
MiKTeX hosted.
The B42 bootstrap is not the six-tool actual desktop acceptance. The old D-owned I46/I47/I57 coordinate/tree guards are expected to require re-leasing; never count pre-GUI failures as functional PASS or FAIL of native gestures.
Hard merge gate: actual Linux/X11 B42 group icon click → selected C tool → six pointer gestures → inspector edits → highlighted editable code → F1 open/close → manual source Ctrl+Z vs visual Undo → Save/Open two distinguishable CRLF/opaque-macro files → XeLaTeX output/PDF raster, plus re-size source pane and hide/reopen tool rail. Screenshot and SHA artifact review at exact B42 app tree, D-owned independent driver. Physical Win10/MiKTeX and M1/M4 remain NOT_RUN. Provisional guide never authoritative over XeLaTeX PDF.
Owner-prioritized urgent UX redesign
Base exact main
93db2044b5b91f79c0e774be8806a3693ba7329b, PR HEAD77ff306ee30d82d8325beb5b47165333a3761cc8. User rejected repeated long text buttons and a sprawling UI, citing prior TikZarium mockups.Actual B42 Rust/UI code: 62pt vector group icon rail; four grouped floating palettes, not dozens of persistent full-word buttons; C-backed tooltip/help, explicit future-package adapter limitations. Short icon Open/Save/Build/Export toolbar. Editable TeX remains beside center native TikZ guide and actual external XeLaTeX PDF; three right context tabs Properties/Libraries/Help, on-demand log, persisted Studio/theme controls. Classical view remains temporarily as an escape hatch for regression comparison. No TeX/CAS/solver/PDF reverse mapping or arbitrary source rewrite.
Persistent Windows Server stream:
scripts/tools/qa_windows_server_user.ps1audits the USER-installed external MiKTeX with--disable-installer, copy-of-source SHA, actual PDF and inventory before/after, optional Rustcargo test --locked; manual-onlyqa-selfhosted-winserver.ymlrequires user-registered dedicatedtikzarium-winserverself-hosted runner on main and exact expected SHA. Does not provision MiKTeX, alter global settings, use RDP or pretend Windows Server is Windows 10. The runner is NOT YET CONFIRMED, so the server test is NOT_RUN.Tests, plans/, insights/, CHANGELOG and docs updated in same branch.
Hard merge gate: exact-head Rust fmt/test/clippy, hosted XeLaTeX/MiKTeX, newly re-pinned actual Linux/X11 screenshots of B42 icon group palette, full readable source/PDF, C help, all six gestures, Undo, Save/Reopen, manual visual comparison. Existing B41 coordinate profiles do not count. Separate post-merge main CI. Physical Win10 x64/MiKTeX and M1/M4 XeLaTeX still NOT_RUN.
This is a real code PR, NOT a cosmetic proposal; it remains DRAFT until evidence is accepted.