Skip to content

feat(C/N2): reversible TikZ imports, literal evidence and safe disconnect - #51

Merged
i-shutov merged 13 commits into
mainfrom
feat/c-n2-library-disconnect-20261031
Oct 31, 2026
Merged

i-shutov merged 13 commits into
mainfrom
feat/c-n2-library-disconnect-20261031

Conversation

@i-shutov

@i-shutov i-shutov commented Oct 31, 2026 •

Copy link
Copy Markdown
Owner

C/N2 source disconnect — complete library connect/disconnect source contract

Base main 97c4b44eeee7ac84ba85f789269c3e15a9f528e4 (#49 C/N2 merged). Old #39 not transplanted. Independent C-owned code on this branch, no A/B/D/E/F files edited. Additive types only; B #50 informed before new API code.

  • project_disconnect::plan_library_disconnect proposes removal of arrows.meta / positioning / calc / fit from a confirmed literal \\usetikzlibrary preamble. Standalone declaration line or one comma-list token, exact byte-range SourcePatch, source revision/anchor checks, inverse patch for Undo.
  • Duplicate imports, inline declaration comments, unknown macro/conditional imports, mixed line endings, unsupported libraries or stale range/revision refuse with reason, leaving the entire user source intact.
  • Nine independent Rust tests cover CRLF/Cyrillic/source authority, four libraries, comma-list first/middle/last, preserved whitespace, duplicates, comments, UNKNOWN and atomic conflict/Undo. Existing six generators and Russian help unchanged.
  • Docs/contract in extensions/primitives/PROJECT_IMPORTS.md, plan and QA ledger added. No hidden package installation, TeX parser/CST, CAD solver or Lua fallback. The existing five status dimensions remain independent.

Evidence gates

cargo is absent in this sandbox. Rust fmt/check/test/Clippy and existing real XeLaTeX workflows on this exact branch HEAD are PENDING, not PASS. No claim of actual GUI disconnect; B owns its visible diff/confirmation/undo. Hosted CI != physical Windows 10 x64/MiKTeX or Mac M1/M4. External XeLaTeX remains authoritative.

Related: merged #49, B #50, D #40. See plans/2026-10-31_C_N2_LIBRARY_DISCONNECT.md and insights/2026-10-31_C_N2_LIBRARY_DISCONNECT_QA.md.

N1/B10 integration fix on same C PR (2026-10-31)

B #50 identified a real N1 app→XeLaTeX authoring regression: existing C scanner returned UNKNOWN for all imports when the source contained normal flat fontspec selections and a later user macro. C now preserves CONFIRMED source-text evidence from a trusted literal preamble prefix, accepts only simple import-neutral \\setmainfont/\\setmathfont assignments, and keeps absent/macro-dependent or conditional declarations UNKNOWN. Existing connect/disconnect patches remain fail-closed for any opaque preamble; no B/A/D/E/F code changed. LF/CRLF source, all six tool statuses, unsafe conditional/macro cases, plan refusal tests included; updated C schema docs/plan/insight in this same PR. B notified via #50 comment.

Current exact C HEAD: 3d64c60815f7980df67394ce6fd2541f80b75c43. Earlier 38febde0 FAILED rustfmt on new test formatting; corrected with exact hosted diff. Exact-head hosted CI VERIFIED: N1 real app authoring state→generated source→external XeLaTeX SUCCESS (source/PDF artifact n1-app-authoring-linux, id 13043022726); D QA matrix SUCCESS, 7/7 jobs, including Linux/macOS/Windows Server Rust and independent XeLaTeX; native CI SUCCESS, 3/3 jobs, including hosted macOS and Windows Server native Rust; figure-font glyph/embedding gate SUCCESS. These are GitHub-hosted integration results, NOT physical Windows 10 with user-installed MiKTeX, Mac M1/M4 GUI/Retina/IME, or B-owned visible disconnect UI. PR remains draft. Physical Windows 10/MiKTeX and Mac M1/M4, and B GUI disconnect action remain NOT_RUN.

Copy link
Copy Markdown
Owner Author

Exact-head QA update (2026-10-31): first branch head 5cf5886a35eb4ee4aa8660ae7ce3d5e8205836bb failed Windows Server Rust cargo fmt --check, actual job 124526566951 in CI run 41197516763. The complete rustfmt diff contained precisely two changes (multiline literal_names signature and multiline inline-comment test array). Both fixed without disabling tests. New current head 26a564af24c0363d2bdd100583205710d9acf961: native CI, D QA, N1→XeLaTeX, font gate are still QUEUED/RUNNING, not PASS. There is no local Rust toolchain or physical Win10/Mac QA here. PR remains draft.

Copy link
Copy Markdown
Owner Author

Evidence on current exact HEAD 26a564af24c0363d2bdd100583205710d9acf961 (2026-10-31): D QA matrix run 41197694448 has completed Rust fmt/tests/Clippy successfully on ubuntu-24.04, macos-15 and windows-2022 (3/3 Rust jobs). The Ubuntu Rust job 124527091142 explicitly logs tests/project_disconnect.rs: 9 passed; 0 failed, original tests/project_imports.rs: 12 passed, primitives 6 passed, source-integrity 17 passed, plus Clippy -D warnings clean. Ubuntu and hosted macOS actual XeLaTeX CLI jobs succeeded; Windows Server TeX job still RUNNING. N1 authoring→XeLaTeX still RUNNING; figure fonts PASS; native CI not yet complete. Do not promote partial matrix to full CI PASS; physical Win10+MiKTeX, real M1/M4 and B's visible disconnect UI remain NOT_RUN. No code/QA gate relaxed.

Copy link
Copy Markdown
Owner Author

Latest exact-HEAD (26a564af24c0363d2bdd100583205710d9acf961) CI evidence: D QA matrix 41197694448 now shows 7/7 jobs SUCCESS, including all three hosted Rust fmt/tests/Clippy hosts, all three external XeLaTeX CLI hosts, and D05 independent uploaded-artifact evidence. Ubuntu Rust log explicitly proves project_disconnect: 9/9, project_imports: 12/12, primitives: 6/6. N1 app→XeLaTeX 41197694417 PASS and fonts 41197694386 PASS. Native CI 41197694365: Linux XeLaTeX fixture PASS; Windows Server/macOS Rust jobs still RUNNING, so full four-workflow CI PASS not claimed. Physical Win10 MiKTeX/M1/M4 and B UI disconnect NOT_RUN.

Copy link
Copy Markdown
Owner Author

Integrator gate after merging A/W06 #38 into main 013720ee6f0e1dc29f487124499ed9469d86b089: B10 #50 exact-head ba564771 has a real N1 authoring→XeLaTeX FAIL (run 41197494077, job 124526498804) while its 3-host Rust tests PASS. n1-authoring-proof refuses the first insertion: Подключение пакета/библиотеки не подтверждено. Exact fixture already contains literal \usepackage{tikz} and \usetikzlibrary{arrows.meta}, but project_imports::inspect classifies unrelated \setmainfont{DejaVu Serif}, \setmathfont{latinmodern-math.otf}, \newcommand{\UserPath}{...} as opaque and ProjectImports::status() converts even confirmed literal declarations to UNKNOWN. Please address in C-owned source scanner/contract, not a duplicate B parser: preserve UNKNOWN for truly ambiguous/conditional/redefined imports and UNKNOWN/Refused for unsafe insertion, but do not make safe standalone known imports unusable merely due unrelated figure-font/user-macro lines. Add a regression with these exact fontspec+macro lines and test arrows.meta confirmed plus N1 proof. Existing #51 source removal tests are green; no merge of #50 until the real N1 proof passes on reconciled source. No changes to your branch by integrator.

Copy link
Copy Markdown
Owner Author

C/N2 integration update 38febde0c05ad093a339b09ab91236379d656974: fixed actual B10/N1 regression of literal TikZ imports globally UNKNOWN due to later user macro/font declarations. Tests now cover N1 fontspec/unicode-math source with all six tools (LF/CRLF), conditional/unsafe-negative cases. Updated same C PR rather than creating a micro-PR. Original #51 disconnect contract unchanged; pending exact-head hosted Rust/N1 QA. See B #50 for handoff.

@i-shutov i-shutov changed the title feat(C/N2): reversible literal TikZ library disconnect with source-safe undo feat(C/N2): reversible TikZ imports, literal evidence and safe disconnect Oct 31, 2026

Copy link
Copy Markdown
Owner Author

Final exact-head QA evidence for C/N2 PR #51, 3d64c60815f7980df67394ce6fd2541f80b75c43 (code+tests+schema docs+plans/insights in this same C PR). GitHub Actions now ALL completed SUCCESS: native CI 41202090696 3/3 jobs (hosted macOS, hosted Windows Server, Linux real XeLaTeX); D QA 41202090692 7/7 (Rust fmt/check/test/Clippy plus real external XeLaTeX); N1 authoring proof 41202090704 SUCCESS for the exact former failing fontspec+opaque macro scenario, with generated .tex/PDF and glyph verification, artifact 13043022726; figure-font gate 41202090693 SUCCESS. The initial 38febde0 rustfmt FAIL is preserved in insights as failure history, not rewritten to PASS. Source-level library CONFIRMED remains distinct from INSTALLED, ENGINE_COMPATIBLE, TOOL_IMPLEMENTED, HELP_AVAILABLE; plan_import and plan_library_disconnect stay refusal-only on uncertainty. No GUI implementation claim or physical Win10/MiKTeX / Mac M1/M4 acceptance. B #50 and D #52 have handoff comments; E/F files untouched. Leave draft pending B visible disconnect UI and physical gates.

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