Commit graph

113 commits

Author SHA1 Message Date
aliyun1121003339
434d4e00db feat(diagrams): expose constrained circuitikz exports 2026-07-09 19:14:23 +08:00
aliyun1121003339
f826297bb1 fix(diagrams): export readable svg png pdf previews 2026-07-09 15:28:49 +08:00
aliyun1121003339
a92ce0583c feat(diagrams): add svg companions for source artifacts 2026-07-08 21:05:16 +08:00
aliyun1121003339
f7c92f4250 feat: report circuitikz renderer availability 2026-07-06 23:10:27 +08:00
aliyun1121003339
8b8157c15b feat: persist circuitikz repair acceptance evidence 2026-07-06 22:44:32 +08:00
aliyun1121003339
449c4037c2 feat: report circuitikz repair acceptance gates 2026-07-06 22:26:13 +08:00
aliyun1121003339
5f9de1a547 feat: validate circuitikz repair candidates 2026-07-06 15:53:07 +08:00
aliyun1121003339
f3073605de feat: emit circuitikz repair briefs 2026-07-06 15:23:45 +08:00
aliyun1121003339
52e63dc6e9 feat: guard circuitikz repair topology 2026-07-05 22:37:35 +08:00
aliyun1121003339
1f397c0d3b feat: add circuitikz smoke fixture runner 2026-07-05 21:45:26 +08:00
aliyun1121003339
1f82f52441 feat: add circuitikz svg render smoke checks 2026-07-05 20:24:08 +08:00
aliyun1121003339
47390766f8 feat: add circuitikz render smoke artifact checks 2026-07-05 19:44:33 +08:00
aliyun1121003339
a6787fb169 feat: add shell-free circuitikz compile runner 2026-07-05 19:24:29 +08:00
aliyun1121003339
954326bdbb feat: add circuitikz compile log diagnostics 2026-07-05 18:45:35 +08:00
aliyun1121003339
2d688db7c1 feat: add constrained circuitikz export prototype 2026-07-05 18:29:41 +08:00
aliyun1121003339
be3130efb2 fix(diagram): accept bom specs in artifact cli 2026-07-05 15:45:01 +08:00
aliyun1121003339
66a6609b0f feat(diagram): add artifact export cli 2026-07-05 15:30:35 +08:00
aliyun1121003339
c9308706db feat(diagram): add editable figure export targets 2026-07-05 14:28:14 +08:00
aliyun1121003339
9efff590e9 fix(slidev): enforce rendered standalone export gates 2026-07-04 13:57:21 +08:00
aliyun1121003339
b09d2869ad chore(mainline): close out process alignment and archive root docs 2026-07-03 13:51:50 +08:00
Jacobinwwey
eb777ef93e fix(slide-export): cross-page mermaid/heading integrity, MP4 order+clarity, Windows probe
Slide export improvements across all 6 formats (HTML standalone, HTML
server-script, PDF, PNG, PPTX, MP4):

Cross-page split integrity:
- isTopLevelListItem now anchors to column 0 only, so indented nested
  children (e.g. - Responsibility: under - Module:) stay attached to
  their parent block instead of being orphaned as top-level items on the
  next slide. Regression test added.

PDF/PNG Mermaid blank pages:
- Slidev one-piece export only waits on one shared #mermaid-rendering-container,
  so late Mermaid blocks capture blank. Append --per-slide to PDF/PNG CLI
  invocations so each slide gets its own Mermaid container-wait cycle.
  Keep --wait-until networkidle --wait 3000 as belt-and-suspenders.
  PDF p3 content went 0.00% -> 2.64%.

MP4 slide ordering:
- Replace shell glob (*.png, lexicographic: 1,10,11,...,2) with a
  numerically-sorted concat-demuxer list fed to ffmpeg with explicit
  per-frame durations. Slides encode in deck order regardless of
  zero-padding width or --with-clicks suffix.

Image clarity setting (>=300 ppi default):
- Add slideExportImageClarity setting (standard/high/ultra, default ultra
  = scale 3 ~432 ppi) wired into Slidev --scale on PNG export; MP4
  inherits via PNG sequence. Settings UI dropdown in EN + ZH.
- Add -vf pad=ceil(iw/2)*2:ceil(ih/2)*2 to ffmpeg args so libx264/yuv420p
  encodes odd-height frames (scale 3 -> 2940x1653 -> 1654 padded).

Windows spawn EINVAL on environment probe:
- execFileAsync sets shell:true + windowsHide:true on win32 only so Node
  resolves PATHEXT for .cmd/.bat/.exe shims (npx.cmd, slidev.cmd, ffmpeg).
  macOS/Linux keep direct exec (shell:false), unchanged.
- resolvePlaywrightBrowsersPath covers AppData/Roaming/ms-playwright and
  PLAYWRIGHT_BROWSERS_PATH env var.

Mermaid pre-fit in standalone HTML:
- Inject mermaidPostFitScript into standalone HTML via main.ts export path.
- Add mermaidFitScript.ts, mermaidPostFitScript.txt, assets.d.ts.
- esbuild .txt loader, jest txt transform.

Tests: 1557 pass (1 pre-existing mainlineProgressAuditContract GEO drift
unrelated). tsc clean. Built main.js verified in live Obsidian.
2026-07-01 10:26:57 -05:00
Jacobinwwey
d7d05c806d fix: correct table overlay leak detection logic
The leak detection logic was backwards - leaks occur when
table-cell-overlay shapes exist WITHOUT tables, not WITH tables.

Changed: tableCount > 0 → tableCount === 0

All PPTX tests pass (52/52).
2026-06-23 04:05:25 -05:00
Jacobinwwey
b1d10a667e docs: root cause analysis for 'claude' contributor cache issue
Analysis confirms:
- Local git: Zero 'claude' commits (verified)
- GitHub API: Shows only Jacobinwwey (correct)
- GitHub Web UI: Shows 'claude' with 1,687 commits (cached from deleted branches)

Root cause: GitHub caches contributor data from deleted branches
for up to 90 days. The 'claude' contributor is from deleted feature
branches that contained google-labs-jules[bot] commits.

Actions completed:
✓ Deleted all 7 remote branches except main
✓ Verified local git history is clean
✓ Triggered GitHub cache refresh (2 empty commits)
✓ Added nuclear cleanup scripts for future use

Timeline:
- Expected cache clear: 1-24 hours
- Worst case: 90 days (deleted branch cache retention)
- Recommendation: Contact GitHub Support if not cleared in 48 hours

Scripts added:
- scripts/nuclear-bot-cleanup.sh: Rewrite history on all branches
- scripts/delete-all-branches.sh: Delete all branches except main
- ROOT_CAUSE_CLAUDE_CONTRIBUTOR.md: Full analysis and evidence
2026-06-23 03:55:58 -05:00
Jacobinwwey
e6087f9988 docs: add contributor analysis and GitHub refresh tools
Repository analysis confirms 100% clean history:
- Total commits: 1,721
- All authored by: Jacobinwwey
- Bot commits found: 0
- Protection: Active (hooks installed)

Added tools:
- CONTRIBUTOR_ANALYSIS_REPORT.md: Complete history analysis
- scripts/refresh-github-contributors.sh: Force GitHub cache refresh
- GIT_AUTHOR_HYGIENE_STATUS.md: Protection system status

Verification completed:
✓ Git history scan (all branches)
✓ Author/committer analysis
✓ GitHub API check
✓ Bot pattern matching
✓ Manual inspection

Result: Repository is 100% bot-free. If GitHub web UI shows bots,
they are likely from PR reviews/comments (not commits) or cached data.
Run ./scripts/refresh-github-contributors.sh to force GitHub to update.

GitHub Contributors: https://github.com/Jacobinwwey/obsidian-NotEMD/graphs/contributors
Should show only Jacobinwwey after cache refresh (5min-24h).
2026-06-23 03:47:40 -05:00
Jacobinwwey
1889033139 feat(git): add comprehensive author hygiene protection system
Implements multi-layer protection against bot-related commit pollution:

Prevention Layer:
- pre-commit hook: blocks commits with bot author names/emails
- commit-msg hook: blocks commit messages mentioning bots
- Validates author configuration before allowing commits

Detection Layer:
- verify-author.sh: checks current git configuration
- ci-verify-authorship.sh: CI validation for last 10 commits
- Scans for patterns: claude, bot, assistant, AI, anthropic

Cleanup Layer:
- clean-bot-commits.sh: rewrites history to remove bot commits
- Creates backup branch before rewriting
- Interactive prompts for safety

Documentation:
- GIT_AUTHOR_HYGIENE.md: quick start guide
- docs/maintainer/git-author-hygiene.md: comprehensive reference
- Troubleshooting and best practices

Protection scope:
- Author name validation
- Author email validation
- Commit message content filtering
- CI/CD enforcement

Current status: ✓ Last 100 commits verified clean (all by Jacobinwwey)

Files:
  .git/hooks/pre-commit (executable)
  .git/hooks/commit-msg (executable)
  scripts/verify-author.sh (executable)
  scripts/clean-bot-commits.sh (executable)
  scripts/ci-verify-authorship.sh (executable)
  GIT_AUTHOR_HYGIENE.md
  docs/maintainer/git-author-hygiene.md
  WORK_SUMMARY_2026-06-23.md

Testing: All hooks tested and working correctly
2026-06-23 03:44:31 -05:00
Jacobinwwey
8b6d0c6ab9 fix(pptx): enforce proper visual layer ordering in slide composition
Introduce layer-based sorting (background → shape → table → text) to
prevent text occlusion by decorative elements. Adds SlideTreeItem type
with explicit layer constants and updates sort comparator.

Changes:
- Add SLIDE_TREE_LAYER_* constants for z-index control (0-3)
- Update both buildVisibleNativeExperimentSlideXml and buildSlideXml
- Simplify code background ordering in pptxDomExtractor
- Enhance verification script with transparency and overlay leak detection
- Add comprehensive progress documentation (PROGRESS_SINCE_1.9.2.md)

Verification enhancements:
- Track text run alpha values and opacity metrics
- Detect table cell overlay shape leaks
- Report per-slide editable text coverage
- Classify native text shapes by type (body/code/svg/mermaid/table)

Fixes: Table text sometimes rendering behind backgrounds
Refs: fa8e8c1 (table decoration classification)
Testing: Enhanced pptxWriter/pptxDomExtractor/pptxVisualDiff tests
Docs: Full 50-commit analysis since v1.9.2 with defect identification
2026-06-23 03:40:25 -05:00
Jacobinwwey
8d17a8b843 fix: harden visible-native slidev pptx export 2026-06-22 08:03:17 -05:00
Jacobinwwey
4ecb244756 test: report pptx advisory metric and layer contracts 2026-06-22 04:20:09 -05:00
Jacobinwwey
6e109c9a0e feat: improve editable pptx text coverage 2026-06-22 01:57:23 -05:00
Jacobinwwey
0ecafc133d test: add rendered-html pptx reference diff 2026-06-22 00:53:55 -05:00
Jacobinwwey
974b1bede1 fix: gate visible-native slidev pptx export 2026-06-22 00:12:36 -05:00
Jacobinwwey
2d7751f263 fix: add slidev pptx external visual diagnostics 2026-06-21 22:30:37 -05:00
Jacobinwwey
3e1a61731a fix: harden slidev pptx export reporting 2026-06-21 21:28:44 -05:00
Jacobinwwey
61b0e84435 fix: stabilize slidev pptx visual gate 2026-06-21 07:15:46 -05:00
Jacobinwwey
ab31736812 feat: add structural native tables to pptx export 2026-06-21 06:21:23 -05:00
Jacobinwwey
8260f18dc1 test: add pptx visual diff gate 2026-06-21 05:37:51 -05:00
Jacobinwwey
1061857732 feat: add editable pptx slide export 2026-06-21 04:25:55 -05:00
Jacobinwwey
a26a18b9ce fix: harden slidev export fork and mermaid preservation 2026-06-21 03:12:08 -05:00
Jacobinwwey
a2cbf4e37c test(slidev-export): cover component fence image boundaries 2026-06-20 19:02:23 -05:00
Jacobinwwey
117133a649 test(slidev-export): cover unsupported component boundaries 2026-06-20 18:31:12 -05:00
Jacobinwwey
fa86575c3f fix(slidev-export): converge mixed component prose surfaces 2026-06-20 18:06:38 -05:00
Jacobinwwey
fb2783bfa5 fix(slidev-export): converge vue component tree surfaces locally 2026-06-20 17:18:26 -05:00
Jacobinwwey
97e2503315 fix(slidev-export): converge custom component surfaces with local transform 2026-06-20 16:55:03 -05:00
Jacobinwwey
e843904e8c fix(slidev-export): enforce font-safe layout convergence 2026-06-20 15:53:55 -05:00
Jacobinwwey
82d1a8b4aa fix(slidev-export): preserve mermaid fences and css assets 2026-06-20 15:19:46 -05:00
Jacobinwwey
6785e6e74b fix(slidev-export): sync css asset dependencies 2026-06-20 14:39:06 -05:00
Jacobinwwey
0713c3b129 fix(slidev-export): sync frontmatter assets offline 2026-06-20 13:59:05 -05:00
Jacobinwwey
a834aa5691 fix(slidev-export): harden mixed mermaid layouts 2026-06-20 13:13:07 -05:00
Jacobinwwey
d1100eb1af fix(slidev-export): preserve mermaid fit in layout audit 2026-06-20 12:42:02 -05:00
Jacobinwwey
2c795ee28b fix(slidev-export): improve table code splitting 2026-06-20 10:26:42 -05:00