diff --git a/loop/agent.go b/loop/agent.go
index a0f981d..41a22f5 100644
--- a/loop/agent.go
+++ b/loop/agent.go
@@ -84,8 +84,10 @@
 	// If commit is non-nil, it shows the diff for just that specific commit.
 	Diff(commit *string) (string, error)
 
-	// InitialCommit returns the Git commit hash that was saved when the agent was instantiated.
-	InitialCommit() string
+	// SketchGitBase returns the commit that's the "base" for Sketch's work. It
+	// starts out as the commit where sketch started, but a user can move it if need
+	// be, for example in the case of a rebase. It is stored as a git tag.
+	SketchGitBase() string
 
 	// Title returns the current title of the conversation.
 	Title() string
@@ -298,7 +300,6 @@
 	url               string
 	firstMessageIndex int           // index of the first message in the current conversation
 	lastHEAD          string        // hash of the last HEAD that was pushed to the host (only when under docker)
-	initialCommit     string        // hash of the Git HEAD when the agent was instantiated or Init()
 	gitRemoteAddr     string        // HTTP URL of the host git repo (only when under docker)
 	outsideHTTP       string        // base address of the outside webserver (only when under docker)
 	ready             chan struct{} // closed when the agent is initialized (only when under docker)
@@ -833,10 +834,8 @@
 				return fmt.Errorf("git checkout %s: %s: %w", ini.Commit, checkoutOut, err)
 			}
 		}
-		a.lastHEAD = ini.Commit
 		a.gitRemoteAddr = ini.GitRemoteAddr
 		a.outsideHTTP = ini.OutsideHTTP
-		a.initialCommit = ini.Commit
 		if ini.HostAddr != "" {
 			a.url = "http://" + ini.HostAddr
 		}
@@ -850,11 +849,16 @@
 		}
 		a.repoRoot = repoRoot
 
-		commitHash, err := resolveRef(ctx, a.repoRoot, "HEAD")
 		if err != nil {
 			return fmt.Errorf("resolveRef: %w", err)
 		}
-		a.initialCommit = commitHash
+
+		cmd := exec.CommandContext(ctx, "git", "tag", "-f", a.SketchGitBaseRef(), "HEAD")
+		cmd.Dir = repoRoot
+		if out, err := cmd.CombinedOutput(); err != nil {
+			return fmt.Errorf("git tag -f %s %s: %s: %w", a.SketchGitBaseRef(), "HEAD", out, err)
+		}
+		a.lastHEAD = ini.Commit
 
 		if experiment.Enabled("memory") {
 			slog.Info("running codebase analysis")
@@ -869,7 +873,7 @@
 		if experiment.Enabled("llm_review") {
 			llmCodeReview = codereview.DoLLMReview
 		}
-		codereview, err := codereview.NewCodeReviewer(ctx, a.repoRoot, a.initialCommit, llmCodeReview)
+		codereview, err := codereview.NewCodeReviewer(ctx, a.repoRoot, a.SketchGitBaseRef(), llmCodeReview)
 		if err != nil {
 			return fmt.Errorf("Agent.Init: codereview.NewCodeReviewer: %w", err)
 		}
@@ -877,7 +881,7 @@
 
 		a.gitOrigin = getGitOrigin(ctx, ini.WorkingDir)
 	}
-	a.lastHEAD = a.initialCommit
+	a.lastHEAD = a.SketchGitBase()
 	a.convo = a.initConvo()
 	close(a.ready)
 	return nil
@@ -1505,7 +1509,7 @@
 
 // Diff returns a unified diff of changes made since the agent was instantiated.
 func (a *Agent) Diff(commit *string) (string, error) {
-	if a.initialCommit == "" {
+	if a.SketchGitBase() == "" {
 		return "", fmt.Errorf("no initial commit reference available")
 	}
 
@@ -1530,7 +1534,7 @@
 	}
 
 	// Otherwise, get the diff between the initial commit and the current state using exec.Command
-	cmd := exec.CommandContext(ctx, "git", "diff", "--unified=10", a.initialCommit)
+	cmd := exec.CommandContext(ctx, "git", "diff", "--unified=10", a.SketchGitBaseRef())
 	cmd.Dir = a.repoRoot
 	output, err := cmd.CombinedOutput()
 	if err != nil {
@@ -1540,9 +1544,26 @@
 	return string(output), nil
 }
 
-// InitialCommit returns the Git commit hash that was saved when the agent was instantiated.
-func (a *Agent) InitialCommit() string {
-	return a.initialCommit
+// SketchGitBaseRef distinguishes between the typical container version, where sketch-base is
+// unambiguous, and the "unsafe" version, where we need to use a session id to disambiguate.
+func (a *Agent) SketchGitBaseRef() string {
+	if a.IsInContainer() {
+		return "sketch-base"
+	} else {
+		return "sketch-base-" + a.SessionID()
+	}
+}
+
+// SketchGitBase returns the Git commit hash that was saved when the agent was instantiated.
+func (a *Agent) SketchGitBase() string {
+	cmd := exec.CommandContext(context.Background(), "git", "rev-parse", a.SketchGitBaseRef())
+	cmd.Dir = a.repoRoot
+	output, err := cmd.CombinedOutput()
+	if err != nil {
+		slog.Warn("could not identify sketch-base", slog.String("error", err.Error()))
+		return "HEAD"
+	}
+	return string(strings.TrimSpace(string(output)))
 }
 
 // removeGitHooks removes the Git hooks directory from the repository
@@ -1597,7 +1618,7 @@
 	// Format: <hash>\0<subject>\0<body>\0
 	// This uses NULL bytes as separators to avoid issues with newlines in commit messages
 	// Limit to 100 commits to avoid overwhelming the user
-	cmd := exec.CommandContext(ctx, "git", "log", "-n", "100", "--pretty=format:%H%x00%s%x00%b%x00", "^"+a.initialCommit, head)
+	cmd := exec.CommandContext(ctx, "git", "log", "-n", "100", "--pretty=format:%H%x00%s%x00%b%x00", "^"+a.SketchGitBaseRef(), head)
 	cmd.Dir = a.repoRoot
 	output, err := cmd.Output()
 	if err != nil {
@@ -1837,7 +1858,6 @@
 		return fmt.Errorf("git checkout %s: %s: %w", revision, out, err)
 	}
 	a.lastHEAD = revision
-	a.initialCommit = revision
 	return nil
 }
 
@@ -1923,7 +1943,7 @@
 		ClientGOARCH:  a.config.ClientGOARCH,
 		WorkingDir:    a.workingDir,
 		RepoRoot:      a.repoRoot,
-		InitialCommit: a.initialCommit,
+		InitialCommit: a.SketchGitBase(),
 		Codebase:      a.codebase,
 	}
 
diff --git a/loop/agent_git_test.go b/loop/agent_git_test.go
index 47899a0..a1ca128 100644
--- a/loop/agent_git_test.go
+++ b/loop/agent_git_test.go
@@ -53,22 +53,26 @@
 		t.Fatalf("Failed to create initial commit: %v", err)
 	}
 
-	// Get the initial commit hash
-	cmd = exec.Command("git", "rev-parse", "HEAD")
-	cmd.Dir = tempDir
-	initialCommitOutput, err := cmd.Output()
-	if err != nil {
-		t.Fatalf("Failed to get initial commit hash: %v", err)
-	}
-	initialCommit := strings.TrimSpace(string(initialCommitOutput))
+	// Note: The initial commit will be tagged as sketch-base later
 
 	// Create agent with the temp repo
 	agent := &Agent{
-		workingDir:    tempDir,
-		repoRoot:      tempDir, // Set repoRoot to same as workingDir for this test
-		seenCommits:   make(map[string]bool),
-		initialCommit: initialCommit,
-		subscribers:   []chan *AgentMessage{},
+		workingDir:  tempDir,
+		repoRoot:    tempDir, // Set repoRoot to same as workingDir for this test
+		seenCommits: make(map[string]bool),
+		subscribers: []chan *AgentMessage{},
+		config: AgentConfig{
+			SessionID: "test-session",
+			InDocker:  false,
+		},
+		history: []AgentMessage{},
+	}
+
+	// Create sketch-base-test-session tag at current HEAD to serve as the base commit
+	cmd = exec.Command("git", "tag", "-f", "sketch-base-test-session", "HEAD")
+	cmd.Dir = tempDir
+	if err := cmd.Run(); err != nil {
+		t.Fatalf("Failed to create sketch-base tag: %v", err)
 	}
 
 	// Make a new commit
@@ -90,9 +94,9 @@
 
 	// Call handleGitCommits and verify we get a commit message
 	ctx := context.Background()
-	_, err = agent.handleGitCommits(ctx)
-	if err != nil {
-		t.Fatalf("handleGitCommits failed: %v", err)
+	_, gitErr := agent.handleGitCommits(ctx)
+	if gitErr != nil {
+		t.Fatalf("handleGitCommits failed: %v", gitErr)
 	}
 
 	// Check if we received a commit message
@@ -171,9 +175,9 @@
 	agent.seenCommits = make(map[string]bool)
 
 	// Call handleGitCommits again - it should show up to 20 commits (or whatever git defaults to)
-	_, err = agent.handleGitCommits(ctx)
-	if err != nil {
-		t.Fatalf("handleGitCommits failed: %v", err)
+	_, handleErr := agent.handleGitCommits(ctx)
+	if handleErr != nil {
+		t.Fatalf("handleGitCommits failed: %v", handleErr)
 	}
 
 	// Check if we received a commit message
diff --git a/loop/server/loophttp.go b/loop/server/loophttp.go
index b186760..a89557d 100644
--- a/loop/server/loophttp.go
+++ b/loop/server/loophttp.go
@@ -1112,12 +1112,13 @@
 	totalUsage := s.agent.TotalUsage()
 
 	return State{
-		StateVersion:         2,
-		MessageCount:         serverMessageCount,
-		TotalUsage:           &totalUsage,
-		Hostname:             s.hostname,
-		WorkingDir:           getWorkingDir(),
-		InitialCommit:        s.agent.InitialCommit(),
+		StateVersion: 2,
+		MessageCount: serverMessageCount,
+		TotalUsage:   &totalUsage,
+		Hostname:     s.hostname,
+		WorkingDir:   getWorkingDir(),
+		// TODO: Rename this field to sketch-base?
+		InitialCommit:        s.agent.SketchGitBase(),
 		Title:                s.agent.Title(),
 		BranchName:           s.agent.BranchName(),
 		OS:                   s.agent.OS(),
diff --git a/loop/server/loophttp_test.go b/loop/server/loophttp_test.go
index cb50642..d68928e 100644
--- a/loop/server/loophttp_test.go
+++ b/loop/server/loophttp_test.go
@@ -192,6 +192,12 @@
 	return m.initialCommit
 }
 
+func (m *mockAgent) SketchGitBase() string {
+	m.mu.RLock()
+	defer m.mu.RUnlock()
+	return m.initialCommit
+}
+
 func (m *mockAgent) Title() string {
 	m.mu.RLock()
 	defer m.mu.RUnlock()
diff --git a/loop/testdata/agent_loop.httprr b/loop/testdata/agent_loop.httprr
index c5c9474..80114d1 100644
--- a/loop/testdata/agent_loop.httprr
+++ b/loop/testdata/agent_loop.httprr
@@ -1,9 +1,9 @@
 httprr trace v1
-16931 2233
+16935 2032
 POST https://api.anthropic.com/v1/messages HTTP/1.1
 Host: api.anthropic.com
 User-Agent: Go-http-client/1.1
-Content-Length: 16733
+Content-Length: 16737
 Anthropic-Version: 2023-06-01
 Content-Type: application/json
 
@@ -535,7 +535,7 @@
  ],
  "system": [
   {
-   "text": "You are the expert coding assistant and architect powering Sketch,\nan agentic coding environment that helps users accomplish coding tasks through autonomous analysis and implementation.\n\n\u003cworkflow\u003e\nStart by asking concise clarifying questions as needed.\nOnce the intent is clear, work autonomously.\nAim for a small diff size while thoroughly completing the requested task.\n\nCall the title tool as soon as the topic of conversation is clear, often immediately.\n\nBreak down the overall goal into a series of smaller steps.\n(The first step is often: \"Make a plan.\")\nThen execute each step using tools.\nUpdate the plan if you have encountered problems or learned new information.\n\nWhen in doubt about a step, follow this broad workflow:\n\n- Think about how the current step fits into the overall plan.\n- Do research. Good tool choices: bash, think, keyword_search\n- Make edits.\n- Repeat.\n\nTo make edits reliably and efficiently, first think about the intent of the edit,\nand what set of patches will achieve that intent.\nThen use the patch tool to make those edits. Combine all edits to any given file into a single patch tool call.\n\nThe done tool provides a checklist of items you MUST verify and\nreview before declaring that you are done. Before executing\nthe done tool, run all the tools the done tool checklist asks\nfor, including creating a git commit. Do not forget to run tests.\n\u003c/workflow\u003e\n\n\u003csystem_info\u003e\n\u003cplatform\u003e\nlinux/amd64\n\u003c/platform\u003e\n\u003cpwd\u003e\n/\n\u003c/pwd\u003e\n\u003c/system_info\u003e\n\n\u003cgit_info\u003e\n\u003cgit_root\u003e\n\n\u003c/git_root\u003e\n\u003cHEAD\u003e\n\n\u003c/HEAD\u003e\n\u003c/git_info\u003e\n\n",
+   "text": "You are the expert coding assistant and architect powering Sketch,\nan agentic coding environment that helps users accomplish coding tasks through autonomous analysis and implementation.\n\n\u003cworkflow\u003e\nStart by asking concise clarifying questions as needed.\nOnce the intent is clear, work autonomously.\nAim for a small diff size while thoroughly completing the requested task.\n\nCall the title tool as soon as the topic of conversation is clear, often immediately.\n\nBreak down the overall goal into a series of smaller steps.\n(The first step is often: \"Make a plan.\")\nThen execute each step using tools.\nUpdate the plan if you have encountered problems or learned new information.\n\nWhen in doubt about a step, follow this broad workflow:\n\n- Think about how the current step fits into the overall plan.\n- Do research. Good tool choices: bash, think, keyword_search\n- Make edits.\n- Repeat.\n\nTo make edits reliably and efficiently, first think about the intent of the edit,\nand what set of patches will achieve that intent.\nThen use the patch tool to make those edits. Combine all edits to any given file into a single patch tool call.\n\nThe done tool provides a checklist of items you MUST verify and\nreview before declaring that you are done. Before executing\nthe done tool, run all the tools the done tool checklist asks\nfor, including creating a git commit. Do not forget to run tests.\n\u003c/workflow\u003e\n\n\u003csystem_info\u003e\n\u003cplatform\u003e\nlinux/amd64\n\u003c/platform\u003e\n\u003cpwd\u003e\n/\n\u003c/pwd\u003e\n\u003c/system_info\u003e\n\n\u003cgit_info\u003e\n\u003cgit_root\u003e\n\n\u003c/git_root\u003e\n\u003cHEAD\u003e\nHEAD\n\u003c/HEAD\u003e\n\u003c/git_info\u003e\n\n",
    "type": "text",
    "cache_control": {
     "type": "ephemeral"
@@ -546,24 +546,24 @@
 Anthropic-Organization-Id: 3c473a21-7208-450a-a9f8-80aebda45c1b
 Anthropic-Ratelimit-Input-Tokens-Limit: 200000
 Anthropic-Ratelimit-Input-Tokens-Remaining: 200000
-Anthropic-Ratelimit-Input-Tokens-Reset: 2025-05-14T00:18:00Z
+Anthropic-Ratelimit-Input-Tokens-Reset: 2025-05-14T16:36:00Z
 Anthropic-Ratelimit-Output-Tokens-Limit: 80000
 Anthropic-Ratelimit-Output-Tokens-Remaining: 80000
-Anthropic-Ratelimit-Output-Tokens-Reset: 2025-05-14T00:18:04Z
+Anthropic-Ratelimit-Output-Tokens-Reset: 2025-05-14T16:36:03Z
 Anthropic-Ratelimit-Requests-Limit: 4000
 Anthropic-Ratelimit-Requests-Remaining: 3999
-Anthropic-Ratelimit-Requests-Reset: 2025-05-14T00:17:59Z
+Anthropic-Ratelimit-Requests-Reset: 2025-05-14T16:35:58Z
 Anthropic-Ratelimit-Tokens-Limit: 280000
 Anthropic-Ratelimit-Tokens-Remaining: 280000
-Anthropic-Ratelimit-Tokens-Reset: 2025-05-14T00:18:00Z
+Anthropic-Ratelimit-Tokens-Reset: 2025-05-14T16:36:00Z
 Cf-Cache-Status: DYNAMIC
-Cf-Ray: 93f6373918bc7afd-SJC
+Cf-Ray: 93fbcfd2ac34236d-SJC
 Content-Type: application/json
-Date: Wed, 14 May 2025 00:18:04 GMT
-Request-Id: req_011CP6TmGW2vmPmS7JfqFK5U
+Date: Wed, 14 May 2025 16:36:03 GMT
+Request-Id: req_011CP7kLmfzqYMjT1roGU6g3
 Server: cloudflare
 Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
 Via: 1.1 google
 X-Robots-Tag: none
 
-{"id":"msg_01K2J8Qx4ZGm7pds3aQd83SV","type":"message","role":"assistant","model":"claude-3-7-sonnet-20250219","content":[{"type":"text","text":"Here are the tools available to me:\n\n1. bash - Executes shell commands\n2. keyword_search - Searches files using keywords\n3. think - For thinking out loud, taking notes, or planning\n4. title - Sets conversation title\n5. precommit - Creates git branches and provides commit guidance\n6. done - Indicates task completion with a checklist\n7. codereview - Runs automated code review\n8. multiplechoice - Presents multiple choice questions to users\n9. Browser tools:\n   - browser_navigate, browser_click, browser_type, browser_wait_for\n   - browser_get_text, browser_eval, browser_scroll_into_view\n   - browser_resize, browser_recent_console_logs, browser_clear_console_logs\n   - browser_take_screenshot, browser_read_image\n10. patch - Modifies files with precise text edits\n\nThese tools allow me to perform tasks like executing code, searching files, interacting with browsers, editing files, and managing git repositories."}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":4,"cache_creation_input_tokens":3888,"cache_read_input_tokens":0,"output_tokens":234}}
\ No newline at end of file
+{"id":"msg_01SDrU5LWSJHPMGMWk8rrTcX","type":"message","role":"assistant","model":"claude-3-7-sonnet-20250219","content":[{"type":"text","text":"I can provide you with a brief list of the tools available to me:\n\n1. bash - Execute shell commands\n2. keyword_search - Find files with search terms\n3. think - Record thoughts and plans (no external effects)\n4. title - Set conversation title\n5. precommit - Create git branch for work\n6. done - Mark completion with checklist verification\n7. codereview - Run automated code review\n8. multiplechoice - Present options for user to choose from\n9. browser_* tools - Various browser automation functions (navigate, click, type, etc.)\n10. patch - Make precise text edits to files\n\nThese tools allow me to help with coding tasks, navigate codebases, make edits, run commands, interact with web pages, and plan/document my work."}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":4,"cache_creation_input_tokens":3890,"cache_read_input_tokens":0,"output_tokens":177}}
\ No newline at end of file
