Skip to main content
Repository history is queryable without a clone. Two surfaces cover it:
  • CLI: tl git log and tl git smartlog for 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.
Commits that landed through Tensorlake carry landing attribution: how the commit reached the branch (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.
A read-only view has no workspace and no snapshot chain; use 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:
Unlike 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

The endpoint walks a branch’s first-parent history and returns one page of commits, each with landing attribution when available. Authenticate with a short-lived Git credential over HTTP Basic auth (a read-scoped credential is enough):

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

The landing 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

Returns one page of a commit’s line-level diff against its first parent (a root commit diffs against the empty tree), paged by file path with the same after/limit cursor scheme:
  • change is added, modified, or removed.
  • Hunk line op is "+", "-", or " ", like a unified diff.
  • Binary files are reported honestly: binary: true with sizes and oids, and no fabricated line hunks.
  • A text file over the patch size caps comes back with patch_omitted: true and 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:
Each active-chain entry carries 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:
Nodes carry a 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 as operations(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.