Repository navigation
Interleaf 0.1.1
·
630 commits
to main
since this release
Images: ghcr.io/<owner>/interleaf:6.2.4, ghcr.io/<owner>/git-bridge:6.2.4.
MCP usability and safety fixes from an external evaluation of the tools
through the claude.ai connector (issue ids H1–H3, M1–M10, L1–L5 refer to that
evaluation).
Breaking
write_filesrefuses to overwrite an existing file unless the call
passesoverwrite: true(H3). New files and deletes need nothing;
base_versionkeeps its conflict check. The error code isfile_exists.
revert_to,merge_branchand git pushes are not affected.read_fileleaves pending suggestions out by default (M8). The text
reads as if every pending tracked change were rejected; pass
include_suggestions: truefor the live text, whichedit_fileworks on,
and the list of pending suggestions.read_fileno longer returnslines(L4); the numberedcontentstring
is the one content form.write_filesreturnsproject_version;versionis kept as a deprecated
alias and will be removed in the next release (M7).diffwith apathreturns a unified diff string instead of project-history's
internal parts; without a path it lists only changed files (L1).diff_branchlists only changed files (unchanged_countcounts the rest);
merge_branchnames the files it writes or deletes instead of returning
their merged content (L3).list_historyentries have a new shape shared by labels and updates (L2).comments_affectedreports a comment shifted along its own line as
unchangedrather thanmoved(L5).- Error results have a multi-line text (
error: <code>…next_action: …)
instead of the bare message. archive_branchneeds write access to the parent project, not just read.
Fixed
replace_sectionstops at the back matter:\appendix,
\bibliographystyle,\bibliography,\printbibliography,
\begin{thebibliography}, an appendix\inputand\end{document}are no
longer replaced with the last section (H1). Every edit reports
replaced_lines; a replacement that removes at least 5 more lines than it
adds, and at least twice as many, carries awarning.list_historyreturned updates without versions, time or users, because it
read the wrong field names from project-history (L2).- A read-only collaborator could archive another user's branch.
Added
- The
editsschema ofedit_fileandsuggest_editsis a union ontype,
one variant per edit type with its own described fields, and the tool
descriptions carry an example of each (H2). - New edit type
insert_at_anchorwithside: "before" | "after"(H2). - Edits are validated before any runs; an unknown type lists the valid ones,
a missing field is named, and every error names the failingedits[i]
(edit_index) (M1, M4). An out-of-rangeoccurrencesays how many matches
exist. replace_sectionwithoutlevelmatches any heading level; several matches
are an error listing each heading's level and line (M2).new_textmust
start with the heading line, as documented (M3).- Version conflicts carry
current_versionandchanged_paths, the files that
changed sincebase_version(M5). - Every write tool returns
project_version, including the comment and
suggestion tools (M7). add_commentandreanchor_commenttakeoccurrence(from 1) and use
start_line/end_linenext toexactorstart_with_ellipsisto narrow
the search (M9).- Branch tools take a branch name together with
project; a project name
where an id belongs lists same-named projects ascandidates(M10). list_projectsreturnslast_updatedand sorts newest first.- Every error's text carries its code, message, details and
next_action,
because some clients show the model only the text of a tool result. - Every timestamp in a tool result is ISO 8601 (L4).
- Every tool description says what it returns;
agentandact_as_agentare
described.
Not changed
- The write lock stays per project (M6); conflicts now name the changed files
instead.