- 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:
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
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.