fix: correct branch contract summary in branch_ops.md

create forks from main only by default (from_ref/from_version supported),
and checkout(name, version=...) returns a read-only pinned handle while
unpinned handles stay writable.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Dan Tasse
2026-08-20 18:16:32 -04:00
co-authored by Claude Fable 5
parent dd31b55239
commit 7d80bd3395
@@ -1,6 +1,6 @@
# Branch Operations
Branches are isolated, writable lines of history forked from `main`. There is no global "switch branch" state: `branches.create(...)` / `branches.checkout(...)` return a **table handle scoped to that branch**, and every read/write on that handle lands on the branch while the original main handle is unaffected.
Branches are isolated, writable lines of history forked from `main` by default (or from another branch/version via `create`'s `from_ref`/`from_version`). There is no global "switch branch" state: `branches.create(...)` / `branches.checkout(...)` return a **table handle scoped to that branch**, and every read/write on that handle lands on the branch while the original main handle is unaffected. Unpinned handles track the branch's latest version and are writable; `checkout(name, version=...)` pins the handle to that version and is read-only.
Don't work from memory — read the public docs for the current API: