Skip to content

feat(B08): six C-catalogue-driven TikZ tools with code, F1 help and undo - #43

Closed
i-shutov wants to merge 9 commits into
feat/c07-tikz-native-six-primitives-20261031from
feat/b08-catalog-driven-authoring-20261031
Closed

i-shutov wants to merge 9 commits into
feat/c07-tikz-native-six-primitives-20261031from
feat/b08-catalog-driven-authoring-20261031

Conversation

@i-shutov

Copy link
Copy Markdown
Owner

B08 — TikZ-native authoring using C's one catalogue

Stacked draft base: feat/c07-tikz-native-six-primitives-20261031 (#39, exact parent f5e31c5); this proposal transplants B07 #37 egui workspace onto C07 and removes competing B-side syntax/help templates. Do not merge independently into main before C07 passes exact-head CI. B07 should be superseded only after B08 integration is accepted.

Functional B implementation

  • Six click/drag TikZ tools (line, arrow, rectangle, circle, text/math node, cubic Bézier) use C Catalog::bundled / Catalog::generate. Toolbar, inspector, source examples, F1/hover use C ToolSpec + ParameterSpec (28 parameters, source-linked manuals).
  • Standard Split shows editable source beside exact XeLaTeX PDF and a distinctly approximate guide pad. GUI themes/figure fonts independent; no CAD/CAS, PGF reimplementation, PDF inversion or opaque macro rewriting.
  • Inspector selects Stealth/Latex arrow tips, text vs raw math mode, geometric parameters. Arrow requires explicitly loaded arrows.meta. Installed != project loaded; explicit preamble diff + reversible undo; no automatic MiKTeX package installation.
  • B-owned marker supports exact code recognition after reopen, narrow UTF-8 SourcePatch with source revision/inverse undo, direct Source text edits invalidate stale visual Undo. Unknown user TeX/comments/macros unchanged. C/core/D APIs/files untouched.

Evidence and limitations

  • 14 authoring unit tests plus B08 GUI QA, plans/insights and portable TeX fixture. Local Debian XeLaTeX manual matching-source fixture PASS (1-page PDF, raster inspected), input/PDF SHA recorded in B08 insights. This does NOT prove Rust C generator parity or GUI drag.
  • B08 exact-head fmt/check/test/clippy/CI: PENDING. C07 math/escape syntax may have a malformed source token; confirm C CI rather than editing C from B.
  • Physical Win10+independently installed MiKTeX, Mac M1/M4 native GUI, screenshots, dialogs, IME, HiDPI and themes: NOT_RUN. Hosted Windows Server cannot replace Win10 acceptance.

Gate and integration

Review #39 and B08 exact-head CI before merge. B07 #37 had a Rust CI rustfmt failure on radius assignment, fixed in B08. B07 should remain until integrated B08 accepted. B08 docs: plans/2026-10-31_B08_CATALOG_DRIVEN_AUTHORING.md; insights/2026-10-31_B08_CATALOG_INTEGRATION_QA.md; crates/tikzarium-app/QA_B08_LIBRARY_HELP.md. No release claim.

Copy link
Copy Markdown
Owner Author

Integrator update: shared N1 Rust/egui six-tool UI + C catalogue F1/hover/inspector, Split source+PDF, undo, and actual app-state→XeLaTeX proof are MERGED via #44 at main 6b0fe3551cb6ded5cf737e28a7a74326f0b4fe49, all four PR-source workflows green. #43 is historical B08 stacked on #39 and must not be merged independently into main (it would reintroduce stale C/B code). Please compare any unique B08-only screenshot/QA/help documents or new UI fixes against current main and preserve only meaningful differences in a focused follow-up, not a duplicate second authoring implementation. Real physical Win10/M1/M4 interaction NOT_RUN.

Copy link
Copy Markdown
Owner Author

Supersession comparison completed against exact accepted main 5f5a805005430ff26d3e3dd9c17c3ca3d7af9fa3. This historical B08 stacked draft targets old C07/#39 (f5e31c...), while accepted #44 N1 (6b0fe355...) and subsequent #50 B15 / #58 C/N2 already contain production tikz_authoring.rs + tikz_canvas.rs: the ONE C Catalog::bundled()/generator/ToolSpec, 6 native TikZ primitives, permanent Split editable source/PDF guide, Russian F1/inspector, source revision patches and undo, explicit reversible arrows.meta dependency handling, and headless egui pointer/CRLF/opaque TeX regressions. Main source and current branch were compared; compare(B08...main) is diverged 224 ahead / 9 behind, not a simple fast-forward. In particular the B08 production Rust diff must not be replayed over accepted N1/B15. Native Win10 x64 MiKTeX + physical Mac M1/M4 GUI acceptance is still NOT_RUN; new B16/B18 work remains separate draft #62 and I06 desktop #48 remains 5/6. Close as superseded / not merged, not as validation of B08's old head. Historical QA document remains accessible in this PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant