## Pull in main to this branch and resolve conflicts

### Merged `origin/main` into `push-compact-for-v1`

Pulled 367 commits from main into your 1-commit branch. The auto-merge handled all code files cleanly; **two doc files conflicted**, both for the same underlying reason.

### Key finding

Main has **removed the v1.1 checkpoint read-mirror feature** entirely — the merge deleted `cmd/entire/cli/strategy/v1_custom_ref_mirror.go` (+test), and the new checkpoint store `IgnoresCheckpointsVersion`. Main also deleted all v1.1 mirror documentation. Your branch's base still carried it.

### Conflicts resolved

Both conflicts mixed two independent things; I split them by what the merged **code** actually contains:

| Content | Decision | Why |
| --- | --- | --- |
| Compact transcript (`transcript.jsonl`) docs — your commit's feature | **Kept** | The code (`writeCompactTranscript` etc.) survived the merge into the refactored `committed.go` intact |
| v1.1 local read-mirror docs — pre-existing context | **Dropped** | Feature was removed from main's code; keeping the docs would describe behavior that no longer exists |

- `CLAUDE.md` — kept compact-transcript bullet, dropped v1.1 bullet
- `docs/architecture/sessions-and-checkpoints.md` — kept compact-transcript paragraph, dropped `#### v1.1 local read mirror` section

### Verification

- `go build ./...` — clean
- `checkpoint`, `strategy`, `paths` package tests — all pass
- No conflict markers or stray v1.1 references remain (the remaining "mirror" mentions are the unrelated `repo mirror list` command)

Merge commit `d7e855b1d` created on `push-compact-for-v1`. Not pushed.

One thing worth flagging: your compact-transcript work was the _v1_ counterpart to a versioning scheme that main has since reworked (the v1.1 mirror is gone, and the checkpoint store now ignores `checkpoints_version`). The code merged and compiles, but you may want to confirm the compact-transcript feature still fits main's new checkpoint-store design before pushing.

## Behavior change

`transcript.jsonl` (the compact transcript) is **still generated and written into the checkpoint tree** on every committed write and during finalization, so it's pushed alongside `full.jsonl` with the `entire/checkpoints/v1` branch. The `metadata.json``sessions[].transcript` pointer now **stays on `full.jsonl`** — pointing it at the compact transcript is deferred.

### Code

- `committed.go`: `writeTranscript` keeps calling `writeCompactTranscript` but always returns `full.jsonl` as the pointer. `writeCompactTranscript` no longer returns the now-unused `bool` (fixed the `unparam` lint hit). Updated the doc comments in `writeTranscript`, `replaceTranscript`, and the directory-tree diagram.
- `committed_compact_transcript_test.go`: the one assertion that expected the pointer to target the compact file now expects `full.jsonl`; the tests that the compact file is written, scoped, and regenerated stay as-is.
- Docs (`CLAUDE.md`, `sessions-and-checkpoints.md`): pointer now documented as staying on `full.jsonl`, compact pushed but not yet referenced.

### Verification

- `mise run fmt` \+ `mise run lint` → 0 issues
- `mise run test:ci` (unit + integration + e2e canary) → exit 0, all green

## Git / PR

- Committed `2b5c661e8` on `push-compact-for-v1` and pushed.
- PR #1419 retitled to _"Store and push compact transcript.jsonl in v1 checkpoints (metadata pointer unchanged)"_ and the description rewritten: scope narrowed to write-and-push only, pointer-flip called out as a follow-up, and the stale v1.1 mirror references removed (main deleted that feature).

### Summary of what changed and shipped:

| Command | Exit | Relevant output | Full log |
| --- | --- | --- | --- |
| `go test ./pkg/foo -run TestBar -count=1` | 0 | Short success excerpt. | `n/a` |

## Final summary

| Thread | Reviewer | Status | Reply |
| --- | --- | --- | --- |
| `PRRT_…SpQ` | cursor (Bugbot) | **Fixed** | Yes |
| `PRRT_…SpL` | cursor (Bugbot) | **Fixed** | Yes |

**What changed:**

- `replaceTranscript` now sanitizes Codex transcripts (`codex.SanitizePortableTranscript`) before generating the compact `transcript.jsonl`, matching the initial-write path.
