Skip to content

v0.1.3

Latest

Choose a tag to compare

@mhmdaskari mhmdaskari released this 01 Sep 23:21
· 3 commits to main since this release

Documentation, metadata, and small additive fixes. No tools were added or removed; the server still registers 19 tools.

Breaking

  • get_project_tree returns an object instead of a bare array. Entities move under entities, alongside rootDocPath, compiler, imageName, trackChangesActive, and a hashNote. Callers that iterated the result directly must now iterate result.entities. This is the only response-shape change in this release.

Changed

  • compile_project.rootFilePath is now optional and defaults to the root document configured in Overleaf, which is what the web UI's Recompile button builds. A blank project ships with a stub main.tex, so a project whose real manuscript lived elsewhere silently compiled the stub.
  • upload_file is annotated destructiveHint: true. It replaces an existing entity at the destination path in place, so the previous destructiveHint: false misdescribed it.
  • upload_file returns a normalized result: entityId, entityType, path, replaced, and, for binary files, hash.
  • download_file no longer silently overwrites a local file; it fails unless overwrite: true is passed.
  • compile_project results include rootFilePath, the document actually compiled.

Added

  • write_file accepts localPath as an alternative to content, keeping a whole-file replacement revision-checked and optionally tracked without sending the file through the client's tool-argument budget.
  • upload_file accepts destinationName, so a local file can be stored under a different name.
  • Overleaf's upload rejections (duplicate_file_name, invalid_filename, project_has_too_many_files, folder_not_found) surface as INVALID_ARGUMENT with an explanation instead of a bare REMOTE_ERROR.
  • Continuous integration on pushes and pull requests, across Node 20 and 24.
  • A roadmap covering the planned path to 1.0.0, and a changelog.

Documentation

  • The tree's hash is documented as a git blob hash, sha1("blob " + byteLength + "\0" + content), identical to git hash-object <file>. Plain sha1sum never matches. It is present only on binary file entities; Overleaf stores no content hash for documents.
  • upload_file's upsert semantics, including that it is a valid way to replace .tex, .bib, and .bst documents from disk, and that doing so is a blind, untracked write.
  • A decision table for write_file versus upload_file, with the real document and update size limits.

Full changelog: v0.1.2...v0.1.3