v0.3.0 — Smart ignore: LaTeX build artifacts + .olignore
⚠ Behavior change
push and sync now filter local files through a built-in ignore list before uploading to Overleaf. LaTeX build artifacts (.aux, .bbl, .log, .out, .fls, .fdb_latexmk, .synctex.gz, beamer/biber/glossaries/minted intermediates, etc.) and OS noise (.DS_Store, Thumbs.db, *.swp) are no longer uploaded.
Previously, locally compiling a project (e.g. with pdflatex or latexmk) would upload dozens of build artifacts to Overleaf, which could break Overleaf's own compile (stale .aux / .bbl) or pollute the remote project.
PDF special rule: X.pdf is ignored only if a same-named X.tex (or .ltx) exists in the same folder. Hand-uploaded figures/diagram.pdf is still synced.
To restore the old behavior on a per-run basis: --no-default-ignore (only .olignore applies) or --no-ignore (uploads everything).
Added
.olignorefile support — gitignore-style syntax for project-level ignore patterns. Negation (!important.aux) supported..olignore.localfile support — machine-specific patterns that should not be committed to version control.olcli ignored [dir]command — lists all ignore patterns currently in effect, grouped by source.push --no-default-ignore/sync --no-default-ignore— disable built-in defaults (only.olignoreapplies).push --no-ignore/sync --no-ignore— disable all ignore filtering (escape hatch).push --show-ignored/sync --show-ignored— print files skipped by ignore rules.- New dependency:
ignore(~30KB, zero deps, gitignore-compatible matcher used by ESLint/Prettier).
Fixed
- #19 —
syncno longer uploads LaTeX build artifacts that break Overleaf compile.
Internal
- New module
src/ignore.tswithDEFAULT_IGNORE_PATTERNS,loadIgnore(),shouldIgnore(), andbuildTexSiblingSet(). - New e2e test
test/e2e-ignore.sh(31 assertions) covering defaults,.olignore,.olignore.local, negation, the PDF sibling rule, the--no-*escape hatches, and a real round-trip upload smoke test. - README, SKILL.md, and docs/index.html updated to document both v0.2.0 deletion propagation and v0.3.0 ignore subsystem.
Full Changelog: v0.2.0...v0.3.0