- CLI:
tl git logandtl git smartlogfor humans and agents working at a mount or a terminal. - HTTP API: commit listing, per-commit diffs, workspace logs, and repository graphs for control planes and dashboards. This is the same API the Tensorlake dashboard uses.
push, promote, merge) and which actor did it, classified as a human or an agent.
In a clone,
git log, git diff, and git show work as usual; Tensorlake is a normal remote. This page is for when there is no checkout: mounts, control planes, CI, and dashboards.History from the CLI
Workspace history: tl git log
tl git log shows the active snapshot chain of a workspace, plus any retained recovery chains created by rebases:
- With a mount path, it logs that mount’s workspace.
- With a repository name, it logs every workspace in the repository.
- With no argument, it uses the mount containing the current directory.
tl git smartlog there. Add --json for the raw pages.
Repository graph: tl git smartlog
tl git smartlog shows branch, tag, workspace, snapshot, and mount positions in one view — where everything is, and how far each workspace is ahead of its base:
tl git log, smartlog works on read-only views: it reads repository state, not a workspace. Add --project for the bounded project-wide graph across every repository, and --json for the raw node/edge pages.
List Commits over HTTP
Query Parameters
Pagination is cursor-based: while
truncated is true, pass next_after back as after. Filters apply server-side, and a filter that matches nothing still terminates promptly with a resumable cursor instead of walking unbounded history. An unknown ref returns 404.
Landing Attribution
Thelanding object records how a commit reached the branch:
Attribution comes from the repository’s bounded operation log, so one landing entry attributes an entire pushed range — a large push costs one entry, not one per commit. Commits older than the attribution window come back without
landing rather than erroring.
Filtering makes activity questions one call. Every commit an agent promoted to main:
File and Directory History
path= narrows the walk to commits that actually changed one file:
after/limit
cursor scheme, restricted to commits that changed the path. A deletion counts as a change to
the path, and a rename counts as a change to both the old and the new path. A commit that only
changed other files is not returned. path can be combined with via and actor.
Two implementation details affect how to use this:
- A commit is reported only after its tree was compared against its first parent at the given path. The changed-path index makes the walk faster, but it does not by itself decide whether a commit is included.
- A path filter over deep history scans at most 10,000 commits per request. If nothing matched
in that window, the page is empty with
truncated: trueand a cursor; passing the cursor back continues the walk. Queries and pushes index older history as they run, so repeated queries over the same history get faster.
Commit Diff over HTTP
after/limit cursor scheme:
changeisadded,modified, orremoved.- Hunk line
opis"+","-", or" ", like a unified diff. - Binary files are reported honestly:
binary: truewith sizes and oids, and no fabricated line hunks. - A text file over the patch size caps comes back with
patch_omitted: trueand its line counts, so listings stay bounded on any commit.
Workspace Log and Smartlog over HTTP
The same data behind the CLI views is available directly. Workspace log — the active snapshot chain and retained recovery chains of one workspace:oid, subject, at_ms, actor, operation, and conflicted. Retained chains (created when a rebase replaces a snapshot chain) carry the recovery ref, head, base, and retention reason — nothing is silently discarded by a rebase.
Smartlog — a bounded node/edge graph of branches, tags, workspaces, snapshots, and live mounts:
kind (branch, tag, workspace, snapshot, mount), position (oid), actor, and timestamp; edges connect them. The project-wide form covers every repository in the project and supports repo= and workspace= filters — this is the fleet view for a control plane watching many agents at once. Both endpoints page with after/limit.
Operation History
Separately from commit history, every repository keeps a durable operation log: pushes, promotions, merges, snapshots, branch deletions, and lifecycle events, each attributed to its actor. It is available from the SDKs asoperations(repo) — see Repository SDKs.
Next Steps
Blame
Attribute every line of a file to the commit that introduced it.
Repository Mounts
The snapshot and promote workflow that produces attributed history.
Merging Changes
Land workspaces on moved branches and query structured conflict records.
Repository SDKs
Repository operations and the operation log from Python or TypeScript.
Authentication
Short-lived Git credentials, scopes, and token lifetime.