jk manual
Create and reshape changes
Describe, create, edit, abandon, squash, and restore changes with explicit operands.
Start with a small mutable change you can recognize by its description and diff. The log’s a menu
contains revision actions. Move the cursor and marks before opening that menu: their roles differ
between actions, and the working-copy change is a separate object.
Give a change a useful description
Select the revision and press a m. The inline editor starts with its existing description.
- Edit the summary with the arrow keys and ordinary text editing controls.
- Press Ctrl-j to add a line break. Enter alone saves.
- Press
Enterto run describe, orEscto discard the draft. - Open the revision with
Enterfrom the log and verify the complete description.
Ctrl-u clears the editor. Ctrl-z undoes an edit to the text; Ctrl-Shift-z redoes it. These are editor operations before saving, separate from repository undo. Describing rewrites the selected change’s metadata and can rewrite descendants as jj propagates that change. It does not commit the cursor’s files into a new revision.
If jj rejects the description update, the editor retains the draft. Inspect the failure in C and
correct the repository problem before saving again. To reverse a successful save, inspect its
operation and use the recovery workflow.
Start a new change
Use New when you want a fresh working-copy change on one or several existing parents. With no marks, the cursor is the parent. With marks, the ordered marked revisions are the parents.
- Press
cto clear old marks if you want a single parent. - Select the parent, or mark each intended parent with
Spacein the desired order. - Press
a n. This executes immediately; there is no confirmation dialog. - Verify that
@and the selection move to the new change and that its parent edges are correct. - Press
a mto describe the new work, then edit files in your normal editor.
Multiple parents create a merge change. Its file content can contain conflicts that need resolution.
The action resolves the chosen parents to exact commit IDs before running jj new. A stale,
ambiguous, or divergent marked change must be reselected instead of being silently replaced by a
different revision.
Esc can cancel the action menu before you choose New; it cannot cancel an already executed New.
Use operation recovery if you created the wrong change. Advanced creation options, including
insertion and a message supplied with creation, require a noninteractive command such as :new -m 'Start follow-up' @. Read the displayed command and confirm its operands before pressing Enter in
command mode, because command mode executes directly.
Resume editing an existing change
Use Edit when the files in this workspace should belong to an existing mutable change. Select it in
the log and press a e. Edit runs immediately, updates the workspace’s @, and changes its files
to that change’s content.
Verify the @ marker, press s to inspect status, and inspect d before making more file edits.
Other changes stay in the repository. An immutable target is rejected by jj; read the error instead
of assuming the working copy moved. The action menu can be cancelled with Esc before choosing
Edit. For a successful but unintended switch, inspect the operation and undo it before continuing
work.
Abandon a change
Abandon removes a change from the visible graph and rebases its descendants according to jj’s rules. It differs from deleting a bookmark, which removes a name, and forgetting a workspace, which removes workspace metadata.
Select a change and press a a. jk checks whether it is empty. An empty change is abandoned
immediately. A non-empty change, or an unsuccessful emptiness check, opens a confirmation with
Cancel selected.
- Read the revision identity and summary.
- Use Left/Right or Tab to select View diff, then
Enterto inspect the patch. - In the embedded diff,
EnterorEscreturns to the summary;ncancels abandonment. - In the summary, choose Abandon and press
Enter, or pressyto confirm directly. - Verify that the change disappears and that its descendants have the intended parents.
In the summary, n or Esc cancels. Enlarge a terminal that cannot display the decision controls;
confirmation is disabled there. After a successful abandonment, use operation recovery to restore an
unintentionally abandoned change.
The embedded diff uses a fixed Git format and jk addition/deletion colors. It does not inherit the
normal diff view’s configured presentation. If that makes the content harder to review, cancel,
inspect the change with d, then reopen abandonment. This presentation gap is tracked in the UX
audit.
The native flow abandons one revision. Multi-revision abandonment is a captured command-mode form; its Enter key executes without this native confirmation.
Combine changes with whole-change squash
Use squash to move the content of one or more changes into an existing destination. Begin with mutable source changes and a distinct destination. Review each source’s diff first.
- Clear unrelated marks with
c. - Mark each source with
Space, in the order you want it listed. - Move the cursor to the destination without marking it.
- Press
a sto open the preview. - Check every Source, the Destination, whole changes, and keep destination description.
- Press
Enterto execute, orEscto cancel without squashing. - Inspect the destination’s diff and description, then inspect the graph for removed sources or rewritten descendants.
Squash moves entire change contents. It keeps the destination description and lets jj handle emptied sources and descendants. File-list selection, folded hunks, and diff search do not narrow its scope. The graph reselects the destination after success.
A missing source mark, a destination also marked as a source, duplicate sources, or a stale marked
revision prevents preparation. Clear or repair those marks and reopen the preview. An immutable
revision or a jj execution failure remains inspectable in C. If changing immutable history is
intentional, Run Options provides a command-scoped override.
If the result is wrong, inspect the resulting operation before undoing. For only some files, use an explicit noninteractive jj command with a fileset; native file and hunk squash are unavailable. Interactive selection requires leaving jk for a foreground tool.
Restore a whole tree into the working copy
Use Restore when @ should receive all paths from another revision. For example, a mutable working
copy may contain an unwanted experiment, and an earlier revision has the tree you want back.
- Press
cto clear marks. Restore rejects marked inputs because it has one source. - Select the revision whose complete tree you want to copy.
- Press
a rand check the exact source, the@destination, and all paths scope. - Press
Enterto execute, orEscto cancel. - Inspect
sand the diff of@, including files deleted or recreated by the copy.
Restore copies tree content; it does not move the working-copy parent or adopt the source
description. It can replace existing working-copy edits. The source is frozen to an exact commit,
while the native destination is the current workspace’s @. Restore’s Run Options keep the latest
operation so @ does not become a historical working copy by accident.
On failure, inspect C, refresh if another process changed the repository, and select again. Use
operation recovery after an unwanted successful restore. A selected diff file does not limit this
operation. Filesets, alternate destinations, --changes-in, and hunk restore have no native form;
use an explicit noninteractive jj command for supported fileset forms or leave jk for interactive
selection.
Finish or split work outside these native forms
Commit, split, absorb, duplicate, revert, and conflict resolution do not have native action dialogs.
Use noninteractive commands where available.
commit acts on the working copy, regardless of which revision is under the log cursor. Foreground
editors, diff tools, and merge tools require leaving jk.
Watch the workflow
Remove an empty change and recover it
Screenshots and terminal evidence
Read the terminal text
jk jj › @ tyskztmk [email protected] 2026-01-01 12:00:00 9b2e071b · │ (empty) Empty checkpoint ○ ruvyrrtt [email protected] 2026-01-01 12:00:00 407e4d00 │ Experiment with forecast caching ○ kpxnkrzm [email protected] 2026-01-01 12:00:00 844cab80 │ Configure request timeouts ○ wsuulvqr [email protected] 2026-01-01 12:00:00 f09a0843 │ Add the forecast endpoint ○ spxmzzxu [email protected] 2026-01-01 12:00:00 9c125dc3 │ Document the forecast service ◆ Actions Change actions: > m Describe revision local rewrite · enter saves n New change local rewrite · runs now e Edit change local rewrite · runs now s Squash revisions local rewrite · preview a Abandon revision destructive · checks first r Restore all paths destructive · preview History and recovery: u Undo local rewrite · runs now U Redo local rewrite · runs now Safety cues show whether actions preview, save, or run now; inspection views stay read-only. j/k or arrows move enter open action key select esc close
Read the terminal text
jk jj › @ rmrllutm [email protected] 2026-01-01 12:00:00 568b6b6f · │ (empty) (no description set) ○ ruvyrrtt [email protected] 2026-01-01 12:00:00 407e4d00 │ Experiment with forecast caching ○ kpxnkrzm [email protected] 2026-01-01 12:00:00 844cab80 │ Configure request timeouts ○ wsuulvqr [email protected] 2026-01-01 12:00:00 f09a0843 │ Add the forecast endpoint ○ spxmzzxu [email protected] 2026-01-01 12:00:00 9c125dc3 │ Document the forecast service ◆ zzzzzzzz root() 00000000 ? help H home L log r refresh enter open d diff v evolog s status space mark o ops ... q quit
Read the terminal text
jk jj › @ tyskztmk [email protected] 2026-01-01 12:00:00 9b2e071b · │ (empty) Empty checkpoint ○ ruvyrrtt [email protected] 2026-01-01 12:00:00 407e4d00 │ Experiment with forecast caching ○ kpxnkrzm [email protected] 2026-01-01 12:00:00 844cab80 │ Configure request timeouts ○ wsuulvqr [email protected] 2026-01-01 12:00:00 f09a0843 │ Add the forecast endpoint ○ spxmzzxu [email protected] 2026-01-01 12:00:00 9c125dc3 │ Document the forecast service ◆ zzzzzzzz root() 00000000 ? help H home L log r refresh enter open d diff v evolog s status space mark o ops ... q quit
Binary, tool versions, and file hashes · Accepted pixel, text/style, and video review · action-diagnostics/bin/dependencies.log · action-diagnostics/tape-1.log · Outcome assertions 1 · Outcome assertions 2
All retained evidence (43 files)
Includes source tapes, original helper scripts, fixture details, terminal states, and logs.
- abandon-empty-action.json
- abandon-empty-action.png
- abandon-empty-replaced-assertions.json
- abandon-empty-replacement.json
- abandon-empty-replacement.png
- abandon-empty-undone-assertions.json
- abandon-empty-undone.json
- abandon-empty-undone.png
- abandon-empty.mp4
- abandon-empty.tape
- action-diagnostics/bin/dependencies.log
- action-diagnostics/manifest.json
- action-diagnostics/tape-1.log
- build-provenance.json
- capture.tape
- checkpoint-summary.json
- fixture-env.sh
- fixture.json
- source-scripts/abandon-dialog-fixture.sh
- source-scripts/action-menu-demo-fixture.sh
- source-scripts/betamax-cancellable-jj.sh
- source-scripts/betamax-fixture-env.sh
- source-scripts/betamax-fixture.sh
- source-scripts/betamax-setup.sh
- source-scripts/check-manual-coverage.py
- source-scripts/check-refresh-proof.py
- source-scripts/check-run-options-proof.py
- source-scripts/manual-assert.sh
- source-scripts/manual-audit-assert.py
- source-scripts/manual-fixture-jj.sh
- source-scripts/manual-fixture.sh
- source-scripts/manual-recordings.py
- source-scripts/package-release-archive.sh
- source-scripts/prepare-preview.sh
- source-scripts/reflow-rust-comments.py
- source-scripts/refs-remotes-demo-fixture.sh
- source-scripts/run-betamax.sh
- source-scripts/shared-selector-demo-fixture.sh
- source-scripts/test_manual_recordings.py
- source-scripts/workflows-demo-fixture.sh
- source-scripts/workspace-lifecycle-demo-fixture.sh
- source.tape
- accepted-review.json
Other recorded forms and recovery paths (11)
Cancel when the empty-change check fails
Screenshots and terminal evidence
Read the terminal text
jk jj › @ mkvkmoop [email protected] 2026-01-01 12:00:00 ecf9b78d · │ (empty) Empty checkpoint ○ xvnznxup [email protected] 2026-01-01 12:00:00 8250b3cd │ Experiment with forecast caching ○ rxvmruwk [email protected] 2026-01-01 12:00:00 4466d9ef │ Configure request timeouts ○ opkkuzyv [email protected] 2026-01-01 12:00:00 cc423d1c │ Add the forecast endpoint ○ npummrwv ale Abandon this change? │ Document the ◆ zzzzzzzz roo @ mkvkmoop Empty checkpoint Couldn't check whether this change is empty. Review its contents before abandoning. Abandon removes this change and its edits from history. No descendant changes will be rebased. Recover with Undo in the action menu. View diff > Cancel < Abandon change Tab/←/→ choose · Enter/Space select y abandon · n/Esc cancel
Read the terminal text
jk jj › @ mkvkmoop [email protected] 2026-01-01 12:00:00 ecf9b78d · │ (empty) Empty checkpoint ○ xvnznxup [email protected] 2026-01-01 12:00:00 8250b3cd │ Experiment with forecast caching ○ rxvmruwk [email protected] 2026-01-01 12:00:00 4466d9ef │ Configure request timeouts ○ opkkuzyv [email protected] 2026-01-01 12:00:00 cc423d1c │ Add the forecast endpoint ○ npummrwv [email protected] 2026-01-01 12:00:00 2e81daa5 │ Document the forecast service ◆ zzzzzzzz root() 00000000 ? help H home L log r refresh enter open d diff v evolog s status space mark o ops ... q quit
Binary, tool versions, and file hashes · Accepted pixel, text/style, and video review · action-diagnostics/bin/dependencies.log · action-diagnostics/tape-1.log · Outcome assertions 1
All retained evidence (40 files)
Includes source tapes, original helper scripts, fixture details, terminal states, and logs.
- abandon-probe-failure-assertions.json
- abandon-probe-failure-cancelled.json
- abandon-probe-failure-cancelled.png
- abandon-probe-failure-warning.json
- abandon-probe-failure-warning.png
- abandon-probe-failure.mp4
- abandon-probe-failure.tape
- action-diagnostics/bin/dependencies.log
- action-diagnostics/manifest.json
- action-diagnostics/tape-1.log
- build-provenance.json
- capture.tape
- checkpoint-summary.json
- fixture-env.sh
- fixture.json
- source-scripts/abandon-dialog-fixture.sh
- source-scripts/action-menu-demo-fixture.sh
- source-scripts/betamax-cancellable-jj.sh
- source-scripts/betamax-fixture-env.sh
- source-scripts/betamax-fixture.sh
- source-scripts/betamax-setup.sh
- source-scripts/check-manual-coverage.py
- source-scripts/check-refresh-proof.py
- source-scripts/check-run-options-proof.py
- source-scripts/manual-assert.sh
- source-scripts/manual-audit-assert.py
- source-scripts/manual-fixture-jj.sh
- source-scripts/manual-fixture.sh
- source-scripts/manual-recordings.py
- source-scripts/package-release-archive.sh
- source-scripts/prepare-preview.sh
- source-scripts/reflow-rust-comments.py
- source-scripts/refs-remotes-demo-fixture.sh
- source-scripts/run-betamax.sh
- source-scripts/shared-selector-demo-fixture.sh
- source-scripts/test_manual_recordings.py
- source-scripts/workflows-demo-fixture.sh
- source-scripts/workspace-lifecycle-demo-fixture.sh
- source.tape
- accepted-review.json
Review a patch before abandoning it
Screenshots and terminal evidence
Read the terminal text
jk jj @ wnpknrpx [email protected] 2026-01-01 12:00:00 3a3ef9e7 │ Document cache metrics ○ kuyrlyoz [email protected] 2026-01-01 12:00:00 f5422ec2 │ Add cache metrics › ○ qsnqxlpq [email protected] 2026-01-01 12:00:00 67e96905 · │ Tune forecast caching ○ wsvsvmyk [email protected] 2026-01-01 12:00:00 59c895e3 │ Configure re Abandon this change? ○ wtuuzyss dem │ Add the fore qsnqxlpq Tune forecast caching ○ ynzzxuyy ale │ Document the Changes to abandon (3 files): ◆ zzzzzzzz roo D README.md +0 −3 M config.json +1 −1 A src/cache.js +5 −0 Abandon removes this change and its edits from history. 2 descendant changes will be rebased onto its parents. Recover with Undo in the action menu. View diff > Cancel < Abandon change Tab/←/→ choose · Enter/Space select y abandon · n/Esc cancel
Read the terminal text
jk jj
@ wnpknrpx dem Changes to abandon
│ Document cac
○ kuyrlyoz dem qsnqxlpq Tune forecast caching
│ Add cache me
› ○ qsnqxlpq dem diff --git a/README.md b/README.md ▲
· │ Tune forecas deleted file mode 100644 █
○ wsvsvmyk dem index 7ff332c830..0000000000 █
│ Configure re --- a/README.md █
○ wtuuzyss dem +++ /dev/null █
│ Add the fore @@ -1,3 +0,0 @@ █
○ ynzzxuyy ale -# Forecast service █
│ Document the - █
◆ zzzzzzzz roo -A small service for local weather forecasts. █
diff --git a/config.json b/config.json █
index f8aed8a9c3..ce5492e67d 100644 █
--- a/config.json █
+++ b/config.json ║
@@ -1,4 +1,4 @@ ║
{ ║
"requestTimeoutMs": 3000, ║
- "cacheTtlSeconds": 60 ║
+ "cacheTtlSeconds": 120 ║
} ║
diff --git a/src/cache.js b/src/cache.js ║
new file mode 100644 ║
index 0000000000..af2729bede ║
--- /dev/null ║
+++ b/src/cache.js ║
@@ -0,0 +1,5 @@ ▼
> Back <
↑/↓ PgUp/PgDn scroll · Esc/Enter back
Read the terminal text
jk jj › @ wnpknrpx [email protected] 2026-01-01 12:00:00 1b815f1f · │ Document cache metrics ○ kuyrlyoz [email protected] 2026-01-01 12:00:00 e91ecd68 │ Add cache metrics ○ wsvsvmyk [email protected] 2026-01-01 12:00:00 59c895e3 │ Configure request timeouts ○ wtuuzyss [email protected] 2026-01-01 12:00:00 19027ff4 │ Add the forecast endpoint ○ ynzzxuyy [email protected] 2026-01-01 12:00:00 75117cf1 │ Document the forecast service ◆ zzzzzzzz root() 00000000 ? help H home L log r refresh enter open d diff v evolog s status space mark o ops ... q quit
Read the terminal text
jk jj › @ wnpknrpx [email protected] 2026-01-01 12:00:00 3a3ef9e7 · │ Document cache metrics ○ kuyrlyoz [email protected] 2026-01-01 12:00:00 f5422ec2 │ Add cache metrics ○ qsnqxlpq [email protected] 2026-01-01 12:00:00 67e96905 │ Tune forecast caching ○ wsvsvmyk [email protected] 2026-01-01 12:00:00 59c895e3 │ Configure request timeouts ○ wtuuzyss [email protected] 2026-01-01 12:00:00 19027ff4 │ Add the forecast endpoint ○ ynzzxuyy [email protected] 2026-01-01 12:00:00 75117cf1 │ Document the forecast service ◆ zzzzzzzz root() 00000000 ? help H home L log r refresh enter open d diff v evolog s status space mark o ops ... q quit
Binary, tool versions, and file hashes · Accepted pixel, text/style, and video review · action-diagnostics/bin/dependencies.log · action-diagnostics/tape-1.log · Outcome assertions 1 · Outcome assertions 2 · Outcome assertions 3
All retained evidence (46 files)
Includes source tapes, original helper scripts, fixture details, terminal states, and logs.
- abandon-review-abandoned-assertions.json
- abandon-review-abandoned.json
- abandon-review-abandoned.png
- abandon-review-cancelled-assertions.json
- abandon-review-decision.json
- abandon-review-decision.png
- abandon-review-diff.json
- abandon-review-diff.png
- abandon-review-restored.json
- abandon-review-restored.png
- abandon-review-undone-assertions.json
- abandon-review.mp4
- abandon-review.tape
- action-diagnostics/bin/dependencies.log
- action-diagnostics/manifest.json
- action-diagnostics/tape-1.log
- build-provenance.json
- capture.tape
- checkpoint-summary.json
- fixture-env.sh
- fixture.json
- source-scripts/abandon-dialog-fixture.sh
- source-scripts/action-menu-demo-fixture.sh
- source-scripts/betamax-cancellable-jj.sh
- source-scripts/betamax-fixture-env.sh
- source-scripts/betamax-fixture.sh
- source-scripts/betamax-setup.sh
- source-scripts/check-manual-coverage.py
- source-scripts/check-refresh-proof.py
- source-scripts/check-run-options-proof.py
- source-scripts/manual-assert.sh
- source-scripts/manual-audit-assert.py
- source-scripts/manual-fixture-jj.sh
- source-scripts/manual-fixture.sh
- source-scripts/manual-recordings.py
- source-scripts/package-release-archive.sh
- source-scripts/prepare-preview.sh
- source-scripts/reflow-rust-comments.py
- source-scripts/refs-remotes-demo-fixture.sh
- source-scripts/run-betamax.sh
- source-scripts/shared-selector-demo-fixture.sh
- source-scripts/test_manual_recordings.py
- source-scripts/workflows-demo-fixture.sh
- source-scripts/workspace-lifecycle-demo-fixture.sh
- source.tape
- accepted-review.json
Inspect an immutable edit failure
Screenshots and terminal evidence
Read the terminal text
jk jj @ koyvzlsk [email protected] 2026-01-01 12:00:00 68d8fc6f │ Experiment with forecast caching ○ kkxzvplo [email protected] 2026-01-01 12:00:00 a418b882 │ Configure request timeouts ○ zovumuvm [email protected] 2026-01-01 12:00:00 854f9909 │ Add the forecast endpoint ○ ttwyvpty [email protected] 2026-01-01 12:00:00 719f7a39 │ Document the forecast service › ◆ zzzzzzzz root() 00000000 jj edit failed: Error: The … ? help H home L log r refresh enter open d diff ... q quit
Read the terminal text
jk Command 3 Command: jj --no-pager --color always --repository /home/runner/work/jk/jk/target/forecast-demo.K8Ua30 e Source: log unknown Status: exit 1 Duration: 20 ms Operation: none Summary: exit 1: Error: The root commit 000000000000 is immutable Stdout: bytes: 0 lines: 0 truncated: no redacted: no <empty> Stderr: bytes: 71 lines: 1 truncated: no redacted: no Error: The root commit 000000000000 is immutable ? help V options r refresh j/k line space page q quit
Binary, tool versions, and file hashes · Accepted pixel, text/style, and video review · action-diagnostics/bin/dependencies.log · action-diagnostics/tape-1.log · Outcome assertions 1
All retained evidence (42 files)
Includes source tapes, original helper scripts, fixture details, terminal states, and logs.
- action-diagnostics/bin/dependencies.log
- action-diagnostics/manifest.json
- action-diagnostics/tape-1.log
- build-provenance.json
- capture.tape
- change-edit-failure-assertions.json
- change-edit-failure-error.json
- change-edit-failure-error.png
- change-edit-failure-history.json
- change-edit-failure-history.png
- change-edit-failure.mp4
- change-edit-failure.tape
- checkpoint-summary.json
- fixture-env.sh
- fixture.json
- source-scripts/abandon-dialog-fixture.sh
- source-scripts/action-menu-demo-fixture.sh
- source-scripts/betamax-cancellable-jj.sh
- source-scripts/betamax-fixture-env.sh
- source-scripts/betamax-fixture.sh
- source-scripts/betamax-setup.sh
- source-scripts/check-manual-coverage.py
- source-scripts/check-refresh-proof.py
- source-scripts/check-run-options-proof.py
- source-scripts/manual-assert.sh
- source-scripts/manual-audit-assert.py
- source-scripts/manual-fixture-jj.sh
- source-scripts/manual-fixture.sh
- source-scripts/manual-recordings.py
- source-scripts/package-release-archive.sh
- source-scripts/prepare-manual-evidence.py
- source-scripts/prepare-preview.sh
- source-scripts/reflow-rust-comments.py
- source-scripts/refs-remotes-demo-fixture.sh
- source-scripts/run-betamax.sh
- source-scripts/shared-selector-demo-fixture.sh
- source-scripts/test_manual_evidence.py
- source-scripts/test_manual_recordings.py
- source-scripts/workflows-demo-fixture.sh
- source-scripts/workspace-lifecycle-demo-fixture.sh
- source.tape
- accepted-review.json
Describe work and start the next change
Screenshots and terminal evidence
Read the terminal text
jk jj › @ nqlpxyqm [email protected] 2026-01-01 12:00:00 16640ceb · │ Experiment with forecast caching ○ rsmxpoux [email protected] 2026-01-01 12:00:00 f3feb0fe │ Configure request timeouts ○ uvvtqqqv [email protected] 2026-01-01 12:00:00 67f04040 │ Add the forecast endpoint ○ ornxyotn [email protected] 2026-01-01 12:00:00 4072393a │ Document the forecast service ◆ zzzzzzzz root() 00000000 Describe revision Revision: nqlpxyqm Discard this draft Enter save · Esc cancel · Ctrl-j newline · Ctrl-u clear · arrows move
Read the terminal text
jk jj › @ nqlpxyqm [email protected] 2026-01-01 12:00:00 16640ceb · │ Experiment with forecast caching ○ rsmxpoux [email protected] 2026-01-01 12:00:00 f3feb0fe │ Configure request timeouts ○ uvvtqqqv [email protected] 2026-01-01 12:00:00 67f04040 │ Add the forecast endpoint ○ ornxyotn [email protected] 2026-01-01 12:00:00 4072393a │ Document the forecast service ◆ zzzzzzzz root() 00000000 Describe revision Revision: nqlpxyqm Tune forecast cache lifetime Keep cached forecasts fresh. Enter save · Esc cancel · Ctrl-j newline · Ctrl-u clear · arrows move
Read the terminal text
jk jj › @ kktmzuom [email protected] 2026-01-01 12:00:00 d181e409 · │ (empty) (no description set) ○ nqlpxyqm [email protected] 2026-01-01 12:00:00 5c37b73c │ Tune forecast cache lifetime ○ rsmxpoux [email protected] 2026-01-01 12:00:00 f3feb0fe │ Configure request timeouts ○ uvvtqqqv [email protected] 2026-01-01 12:00:00 67f04040 │ Add the forecast endpoint ○ ornxyotn [email protected] 2026-01-01 12:00:00 4072393a │ Document the forecast service ◆ zzzzzzzz root() 00000000 ? help H home L log r refresh enter open d diff v evolog s status space mark o ops ... q quit
Read the terminal text
jk jj › @ nqlpxyqm [email protected] 2026-01-01 12:00:00 5c37b73c · │ Tune forecast cache lifetime ○ rsmxpoux [email protected] 2026-01-01 12:00:00 f3feb0fe │ Configure request timeouts ○ uvvtqqqv [email protected] 2026-01-01 12:00:00 67f04040 │ Add the forecast endpoint ○ ornxyotn [email protected] 2026-01-01 12:00:00 4072393a │ Document the forecast service ◆ zzzzzzzz root() 00000000 ? help H home L log r refresh enter open d diff v evolog s status space mark o ops ... q quit
Binary, tool versions, and file hashes · Accepted pixel, text/style, and video review · action-diagnostics/bin/dependencies.log · action-diagnostics/tape-1.log · Outcome assertions 1 · Outcome assertions 2 · Outcome assertions 3
All retained evidence (48 files)
Includes source tapes, original helper scripts, fixture details, terminal states, and logs.
- action-diagnostics/bin/dependencies.log
- action-diagnostics/manifest.json
- action-diagnostics/tape-1.log
- build-provenance.json
- capture.tape
- change-lifecycle-cancel.json
- change-lifecycle-cancel.png
- change-lifecycle-cancelled-assertions.json
- change-lifecycle-edited-assertions.json
- change-lifecycle-multiline.json
- change-lifecycle-multiline.png
- change-lifecycle-new-assertions.json
- change-lifecycle-new.json
- change-lifecycle-new.png
- change-lifecycle-recovered.json
- change-lifecycle-recovered.png
- change-lifecycle.mp4
- change-lifecycle.tape
- checkpoint-summary.json
- fixture-env.sh
- fixture.json
- source-scripts/abandon-dialog-fixture.sh
- source-scripts/action-menu-demo-fixture.sh
- source-scripts/betamax-cancellable-jj.sh
- source-scripts/betamax-fixture-env.sh
- source-scripts/betamax-fixture.sh
- source-scripts/betamax-setup.sh
- source-scripts/check-manual-coverage.py
- source-scripts/check-refresh-proof.py
- source-scripts/check-run-options-proof.py
- source-scripts/manual-assert.sh
- source-scripts/manual-audit-assert.py
- source-scripts/manual-fixture-jj.sh
- source-scripts/manual-fixture.sh
- source-scripts/manual-recordings.py
- source-scripts/package-release-archive.sh
- source-scripts/prepare-manual-evidence.py
- source-scripts/prepare-preview.sh
- source-scripts/reflow-rust-comments.py
- source-scripts/refs-remotes-demo-fixture.sh
- source-scripts/run-betamax.sh
- source-scripts/shared-selector-demo-fixture.sh
- source-scripts/test_manual_evidence.py
- source-scripts/test_manual_recordings.py
- source-scripts/workflows-demo-fixture.sh
- source-scripts/workspace-lifecycle-demo-fixture.sh
- source.tape
- accepted-review.json
Finish changes with noninteractive jj commands
Screenshots and terminal evidence
Read the terminal text
jk jj --no-pager --color always --repository /home/runner/work/jk/jk/target/forecast-demo.bVeJwf commit Command: jj --no-pager --color always --repository /home/runner/work/jk/jk/target/forecast-demo.bVeJwf c Status: success Stdout: <empty> Stderr: Working copy (@) now at: vqpwptwu 08abaccf (empty) (no description set) Parent commit (@-) : suxmowpm c9fa0f6c Finalize forecast caching Actions: e edit/retry command : run another jj command ? help V options r refresh j/k line space page q quit
Read the terminal text
jk jj --no-pager --color always --repository /home/runner/work/jk/jk/target/forecast-demo.bVeJwf duplica Command: jj --no-pager --color always --repository /home/runner/work/jk/jk/target/forecast-demo.bVeJwf d Status: success Stdout: <empty> Stderr: Duplicated 08d06a583f6f as oqxnnwrv c896d636 Experiment with forecast caching Actions: e edit/retry command : run another jj command ? help V options r refresh j/k line space page q quit
Read the terminal text
jk jj --no-pager --color always --repository /home/runner/work/jk/jk/target/forecast-demo.bVeJwf revert Command: jj --no-pager --color always --repository /home/runner/work/jk/jk/target/forecast-demo.bVeJwf r Status: success Stdout: <empty> Stderr: Reverted 1 commits as follows: qkrppyln 8617efc1 Revert "Experiment with forecast caching" Actions: e edit/retry command : run another jj command ? help V options r refresh j/k line space page q quit
Read the terminal text
jk jj --no-pager --color always --repository /home/runner/work/jk/jk/target/forecast-demo.bVeJwf absorb Command: jj --no-pager --color always --repository /home/runner/work/jk/jk/target/forecast-demo.bVeJwf a Status: success Stdout: <empty> Stderr: Absorbed changes into 1 revisions: mtzqzntl 9f95ffb1 Configure request timeouts Rebased 1 descendant commits. Working copy (@) now at: suxmowpm 2070a45c Experiment with forecast caching Parent commit (@-) : mtzqzntl 9f95ffb1 Configure request timeouts Remaining changes: A src/cache.js Actions: e edit/retry command : run another jj command ? help V options r refresh j/k line space page q quit
Binary, tool versions, and file hashes · Accepted pixel, text/style, and video review · action-diagnostics/bin/dependencies.log · action-diagnostics/tape-1.log · Outcome assertions 1 · Outcome assertions 2 · Outcome assertions 3 · Outcome assertions 4
All retained evidence (49 files)
Includes source tapes, original helper scripts, fixture details, terminal states, and logs.
- action-diagnostics/bin/dependencies.log
- action-diagnostics/manifest.json
- action-diagnostics/tape-1.log
- build-provenance.json
- capture.tape
- checkpoint-summary.json
- command-alternatives-absorb.json
- command-alternatives-absorb.png
- command-alternatives-absorbed-assertions.json
- command-alternatives-commit.json
- command-alternatives-commit.png
- command-alternatives-committed-assertions.json
- command-alternatives-duplicate.json
- command-alternatives-duplicate.png
- command-alternatives-duplicated-assertions.json
- command-alternatives-revert.json
- command-alternatives-revert.png
- command-alternatives-reverted-assertions.json
- command-alternatives.mp4
- command-alternatives.tape
- fixture-env.sh
- fixture.json
- source-scripts/abandon-dialog-fixture.sh
- source-scripts/action-menu-demo-fixture.sh
- source-scripts/betamax-cancellable-jj.sh
- source-scripts/betamax-fixture-env.sh
- source-scripts/betamax-fixture.sh
- source-scripts/betamax-setup.sh
- source-scripts/check-manual-coverage.py
- source-scripts/check-refresh-proof.py
- source-scripts/check-run-options-proof.py
- source-scripts/manual-assert.sh
- source-scripts/manual-audit-assert.py
- source-scripts/manual-fixture-jj.sh
- source-scripts/manual-fixture.sh
- source-scripts/manual-recordings.py
- source-scripts/package-release-archive.sh
- source-scripts/prepare-manual-evidence.py
- source-scripts/prepare-preview.sh
- source-scripts/reflow-rust-comments.py
- source-scripts/refs-remotes-demo-fixture.sh
- source-scripts/run-betamax.sh
- source-scripts/shared-selector-demo-fixture.sh
- source-scripts/test_manual_evidence.py
- source-scripts/test_manual_recordings.py
- source-scripts/workflows-demo-fixture.sh
- source-scripts/workspace-lifecycle-demo-fixture.sh
- source.tape
- accepted-review.json
Split and restore selected files
Screenshots and terminal evidence
Read the terminal text
jk jj --no-pager --color always --repository /home/runner/work/jk/jk/target/forecast-demo.BM4h8p split - Command: jj --no-pager --color always --repository /home/runner/work/jk/jk/target/forecast-demo.BM4h8p s Status: success Stdout: <empty> Stderr: Selected changes : yokznrqw 01b61ce0 Separate cache policy Remaining changes: pqxyrvmx 73f351d1 Experiment with forecast caching Working copy (@) now at: pqxyrvmx 73f351d1 Experiment with forecast caching Parent commit (@-) : yokznrqw 01b61ce0 Separate cache policy Actions: e edit/retry command : run another jj command ? help V options r refresh j/k line space page q quit
Read the terminal text
jk jj @ pqxyrvmx [email protected] 2026-01-01 12:00:00 73f351d1 │ Experiment with forecast caching › ○ yokznrqw [email protected] 2026-01-01 12:00:00 01b61ce0 · │ Separate cache policy ○ oqysmzlr [email protected] 2026-01-01 12:00:00 b34d7568 │ Configure request timeouts ○ vzvnkxkw [email protected] 2026-01-01 12:00:00 bd5c3187 │ Add the forecast endpoint ○ lsstlszs [email protected] 2026-01-01 12:00:00 f2740001 │ Document the forecast service ◆ zzzzzzzz root() 00000000 ? help H home L log r refresh enter open d diff v evolog s status space mark o ops ... q quit
Read the terminal text
jk jj --no-pager --color always --repository /home/runner/work/jk/jk/target/forecast-demo.BM4h8p restore Command: jj --no-pager --color always --repository /home/runner/work/jk/jk/target/forecast-demo.BM4h8p r Status: success Stdout: <empty> Stderr: Working copy (@) now at: yokznrqw ad06aa30 Experiment with forecast caching Parent commit (@-) : oqysmzlr b34d7568 Configure request timeouts Added 0 files, modified 1 files, removed 0 files Actions: e edit/retry command : run another jj command ? help V options r refresh j/k line space page q quit
Read the terminal text
jk jj diff -r yokznrqw
› Added regular file src/cache.js: | 5 +++++ [file 1/1]
1: const forecasts = new Map();
2:
3: export function remember(city, forecast) {
4: forecasts.set(city, forecast);
5: }
file 1/1 src/cache.js f files [/] file { } hunk ? help
Binary, tool versions, and file hashes · Accepted pixel, text/style, and video review · action-diagnostics/bin/dependencies.log · action-diagnostics/tape-1.log · Outcome assertions 1 · Outcome assertions 2
All retained evidence (47 files)
Includes source tapes, original helper scripts, fixture details, terminal states, and logs.
- action-diagnostics/bin/dependencies.log
- action-diagnostics/manifest.json
- action-diagnostics/tape-1.log
- build-provenance.json
- capture.tape
- checkpoint-summary.json
- command-filesets-restore-output.json
- command-filesets-restore-output.png
- command-filesets-restored-assertions.json
- command-filesets-retained.json
- command-filesets-retained.png
- command-filesets-split-assertions.json
- command-filesets-split-graph.json
- command-filesets-split-graph.png
- command-filesets-split-output.json
- command-filesets-split-output.png
- command-filesets.mp4
- command-filesets.tape
- fixture-env.sh
- fixture.json
- source-scripts/abandon-dialog-fixture.sh
- source-scripts/action-menu-demo-fixture.sh
- source-scripts/betamax-cancellable-jj.sh
- source-scripts/betamax-fixture-env.sh
- source-scripts/betamax-fixture.sh
- source-scripts/betamax-setup.sh
- source-scripts/check-manual-coverage.py
- source-scripts/check-refresh-proof.py
- source-scripts/check-run-options-proof.py
- source-scripts/manual-assert.sh
- source-scripts/manual-audit-assert.py
- source-scripts/manual-fixture-jj.sh
- source-scripts/manual-fixture.sh
- source-scripts/manual-recordings.py
- source-scripts/package-release-archive.sh
- source-scripts/prepare-manual-evidence.py
- source-scripts/prepare-preview.sh
- source-scripts/reflow-rust-comments.py
- source-scripts/refs-remotes-demo-fixture.sh
- source-scripts/run-betamax.sh
- source-scripts/shared-selector-demo-fixture.sh
- source-scripts/test_manual_evidence.py
- source-scripts/test_manual_recordings.py
- source-scripts/workflows-demo-fixture.sh
- source-scripts/workspace-lifecycle-demo-fixture.sh
- source.tape
- accepted-review.json
Create a merge from ordered parents
Screenshots and terminal evidence
Read the terminal text
jk jj * @ umvnknwz [email protected] 2026-01-01 12:00:00 ef07ed51 │ Experiment with forecast caching ›* │ ○ lmznruqt [email protected] 2026-01-01 12:00:00 32f7a649 ├─╯ Document cache policy ○ pwnyxvux [email protected] 2026-01-01 12:00:00 8effc773 │ Configure request timeouts ○ stowqwrl [email protected] 2026-01-01 12:00:00 1ce5202d │ Add the forecast endpoint ○ urlssylt [email protected] 2026-01-01 12:00:00 dee57915 │ Document the forecast service ◆ zzzzzzzz root() 00000000 mark 2/2 ? help H home L log r refresh enter open d diff v evolog s status space mark o ops …
Read the terminal text
jk jj › @ txqlxlql [email protected] 2026-01-01 12:00:00 a5d9e99d ├─╮ (empty) (no description set) * │ ○ lmznruqt [email protected] 2026-01-01 12:00:00 32f7a649 │ │ Document cache policy * ○ │ umvnknwz [email protected] 2026-01-01 12:00:00 ef07ed51 ├─╯ Experiment with forecast caching ○ pwnyxvux [email protected] 2026-01-01 12:00:00 8effc773 │ Configure request timeouts ○ stowqwrl [email protected] 2026-01-01 12:00:00 1ce5202d │ Add the forecast endpoint ○ urlssylt [email protected] 2026-01-01 12:00:00 dee57915 │ Document the forecast service ◆ zzzzzzzz root() 00000000 2 marked ? help H home L log r refresh enter open d diff v evolog s status space mark o ops …
Read the terminal text
jk jj › @ umvnknwz [email protected] 2026-01-01 12:00:00 ef07ed51 · │ Experiment with forecast caching │ ○ lmznruqt [email protected] 2026-01-01 12:00:00 32f7a649 ├─╯ Document cache policy ○ pwnyxvux [email protected] 2026-01-01 12:00:00 8effc773 │ Configure request timeouts ○ stowqwrl [email protected] 2026-01-01 12:00:00 1ce5202d │ Add the forecast endpoint ○ urlssylt [email protected] 2026-01-01 12:00:00 dee57915 │ Document the forecast service ◆ zzzzzzzz root() 00000000 ? help H home L log r refresh enter open d diff v evolog s status space mark o ops ... q quit
Binary, tool versions, and file hashes · Accepted pixel, text/style, and video review · action-diagnostics/bin/dependencies.log · action-diagnostics/tape-1.log · Outcome assertions 1 · Outcome assertions 2
All retained evidence (45 files)
Includes source tapes, original helper scripts, fixture details, terminal states, and logs.
- action-diagnostics/bin/dependencies.log
- action-diagnostics/manifest.json
- action-diagnostics/tape-1.log
- build-provenance.json
- capture.tape
- checkpoint-summary.json
- fixture-env.sh
- fixture.json
- new-parents-merged-assertions.json
- new-parents-merged.json
- new-parents-merged.png
- new-parents-ordered.json
- new-parents-ordered.png
- new-parents-undone-assertions.json
- new-parents-undone.json
- new-parents-undone.png
- new-parents.mp4
- new-parents.tape
- source-scripts/abandon-dialog-fixture.sh
- source-scripts/action-menu-demo-fixture.sh
- source-scripts/betamax-cancellable-jj.sh
- source-scripts/betamax-fixture-env.sh
- source-scripts/betamax-fixture.sh
- source-scripts/betamax-setup.sh
- source-scripts/check-manual-coverage.py
- source-scripts/check-refresh-proof.py
- source-scripts/check-run-options-proof.py
- source-scripts/manual-assert.sh
- source-scripts/manual-audit-assert.py
- source-scripts/manual-fixture-jj.sh
- source-scripts/manual-fixture.sh
- source-scripts/manual-recordings.py
- source-scripts/package-release-archive.sh
- source-scripts/prepare-manual-evidence.py
- source-scripts/prepare-preview.sh
- source-scripts/reflow-rust-comments.py
- source-scripts/refs-remotes-demo-fixture.sh
- source-scripts/run-betamax.sh
- source-scripts/shared-selector-demo-fixture.sh
- source-scripts/test_manual_evidence.py
- source-scripts/test_manual_recordings.py
- source-scripts/workflows-demo-fixture.sh
- source-scripts/workspace-lifecycle-demo-fixture.sh
- source.tape
- accepted-review.json
Correct ambiguous source selections
Screenshots and terminal evidence
Read the terminal text
jk jj * @ vumxryqq [email protected] 2026-01-01 12:00:00 5531bbe8 │ Rebase source ›* │ ○ ttwltuyw [email protected] 2026-01-01 12:00:00 59bb7820 ├─╯ Rebase destination ○ qqwoxool [email protected] 2026-01-01 12:00:00 3f7e45c7 │ Rebase base ◆ zzzzzzzz root() 00000000 mark 2/2 Rebase source is ambiguous:… ? help H home L log r refresh enter open d diff ... q qu…
Read the terminal text
jk jj * @ vumxryqq [email protected] 2026-01-01 12:00:00 5531bbe8 │ Rebase source ›* │ ○ ttwltuyw [email protected] 2026-01-01 12:00:00 59bb7820 ├─╯ Rebase destination ○ qqwoxool [email protected] 2026-01-01 12:00:00 3f7e45c7 │ Rebase base ◆ zzzzzzzz root() 00000000 mark 2/2 Restore needs one source re… ? help H home L log r refresh enter open d diff ... q qu…
Read the terminal text
jk jj @ vumxryqq [email protected] 2026-01-01 12:00:00 5531bbe8 │ Rebase source › │ ○ ttwltuyw [email protected] 2026-01-01 12:00:00 59bb7820 ├─╯ Rebase destination ○ qqwoxool [email protected] 2026-01-01 12:00:00 3f7e45c7 │ Rebase base ◆ zzzzzzzz root() 00000000 Mark at least one source re… ? help H home L log r refresh enter open d diff ... q quit
Binary, tool versions, and file hashes · Accepted pixel, text/style, and video review · action-diagnostics/bin/dependencies.log · action-diagnostics/tape-1.log · Outcome assertions 1
All retained evidence (44 files)
Includes source tapes, original helper scripts, fixture details, terminal states, and logs.
- action-diagnostics/bin/dependencies.log
- action-diagnostics/manifest.json
- action-diagnostics/tape-1.log
- build-provenance.json
- capture.tape
- checkpoint-summary.json
- fixture-env.sh
- fixture.json
- manual-invalid-operands-assertions.json
- manual-invalid-operands-rebase.json
- manual-invalid-operands-rebase.png
- manual-invalid-operands-restore.json
- manual-invalid-operands-restore.png
- manual-invalid-operands-squash.json
- manual-invalid-operands-squash.png
- manual-invalid-operands.mp4
- manual-invalid-operands.tape
- source-scripts/abandon-dialog-fixture.sh
- source-scripts/action-menu-demo-fixture.sh
- source-scripts/betamax-cancellable-jj.sh
- source-scripts/betamax-fixture-env.sh
- source-scripts/betamax-fixture.sh
- source-scripts/betamax-setup.sh
- source-scripts/check-manual-coverage.py
- source-scripts/check-refresh-proof.py
- source-scripts/check-run-options-proof.py
- source-scripts/manual-assert.sh
- source-scripts/manual-audit-assert.py
- source-scripts/manual-fixture-jj.sh
- source-scripts/manual-fixture.sh
- source-scripts/manual-recordings.py
- source-scripts/package-release-archive.sh
- source-scripts/prepare-manual-evidence.py
- source-scripts/prepare-preview.sh
- source-scripts/reflow-rust-comments.py
- source-scripts/refs-remotes-demo-fixture.sh
- source-scripts/run-betamax.sh
- source-scripts/shared-selector-demo-fixture.sh
- source-scripts/test_manual_evidence.py
- source-scripts/test_manual_recordings.py
- source-scripts/workflows-demo-fixture.sh
- source-scripts/workspace-lifecycle-demo-fixture.sh
- source.tape
- accepted-review.json
Restore the working copy and recover its content
Screenshots and terminal evidence
Read the terminal text
jk jj @ rqwnnsru [email protected] 2026-01-01 12:00:00 1e36af2a │ Restore working content › ○ utrtrmnp [email protected] 2026-01-01 12:00:00 1b5a0b97 · │ Restore base ◆ zzzzzzzz root() 00000000 Restore all paths Source: 1b5a0b97f2521ed2b27ad7ffbf4c8f89dc2c3255 Destination: @ (working copy) Affected content: all paths ! Changes local files or history. Command jj --no-pager --color always --repository /home/runner/work/jk/jk/target/manual-fixtures/restore.RifzV3/workflows.KjyL LA/restore restore --from 1b5a0b97f2521ed2b27ad7ffbf4c8f89dc2c3255 --into @ enter run y copy esc cancel o options
Read the terminal text
jk jj @ rqwnnsru [email protected] 2026-01-01 12:00:00 57db5c38 │ (empty) Restore working content › ○ utrtrmnp [email protected] 2026-01-01 12:00:00 1b5a0b97 · │ Restore base ◆ zzzzzzzz root() 00000000 ✓ Restored all paths into working copy ? help H home L log r refresh enter open d diff v evolog s status space mark o ops ... q quit
Read the terminal text
jk jj › @ rqwnnsru [email protected] 2026-01-01 12:00:00 1e36af2a · │ Restore working content ○ utrtrmnp [email protected] 2026-01-01 12:00:00 1b5a0b97 │ Restore base ◆ zzzzzzzz root() 00000000 ✓ Undid operation ? help H home L log r refresh enter open d diff v evolog s status space mark o ops ... q quit
Binary, tool versions, and file hashes · Accepted pixel, text/style, and video review · action-diagnostics/bin/dependencies.log · action-diagnostics/tape-1.log · Outcome assertions 1 · Outcome assertions 2 · Outcome assertions 3
All retained evidence (44 files)
Includes source tapes, original helper scripts, fixture details, terminal states, and logs.
- action-diagnostics/bin/dependencies.log
- action-diagnostics/manifest.json
- action-diagnostics/tape-1.log
- build-provenance.json
- capture.tape
- checkpoint-summary.json
- fixture-env.sh
- fixture.json
- manual-restore-cancelled-assertions.json
- manual-restore-preview.json
- manual-restore-preview.png
- manual-restore-recovered.json
- manual-restore-recovered.png
- manual-restore-success-assertions.json
- manual-restore-success.json
- manual-restore-success.png
- manual-restore-undone-assertions.json
- manual-restore.mp4
- manual-restore.tape
- source-scripts/abandon-dialog-fixture.sh
- source-scripts/action-menu-demo-fixture.sh
- source-scripts/betamax-cancellable-jj.sh
- source-scripts/betamax-fixture-env.sh
- source-scripts/betamax-fixture.sh
- source-scripts/betamax-setup.sh
- source-scripts/check-manual-coverage.py
- source-scripts/check-refresh-proof.py
- source-scripts/check-run-options-proof.py
- source-scripts/manual-assert.sh
- source-scripts/manual-audit-assert.py
- source-scripts/manual-fixture-jj.sh
- source-scripts/manual-fixture.sh
- source-scripts/manual-recordings.py
- source-scripts/package-release-archive.sh
- source-scripts/prepare-preview.sh
- source-scripts/reflow-rust-comments.py
- source-scripts/refs-remotes-demo-fixture.sh
- source-scripts/run-betamax.sh
- source-scripts/shared-selector-demo-fixture.sh
- source-scripts/test_manual_recordings.py
- source-scripts/workflows-demo-fixture.sh
- source-scripts/workspace-lifecycle-demo-fixture.sh
- source.tape
- accepted-review.json
Combine several sources into one change
Screenshots and terminal evidence
Read the terminal text
jk jj * @ wrxwmpnk [email protected] 2026-01-01 12:00:00 009f2ef4 │ Squash second source * ○ qspvuztq [email protected] 2026-01-01 12:00:00 98549241 │ Squash source › ○ qzokrkon [email protected] 2026-01-01 12:00:00 ee6cccab · │ Squash destination ◆ zzzzzzzz root() 00000000 jj squash into ee6cccab815b86ef822a0e58accb16fadcec07d1 Source 1: 009f2ef4df11a52d27e4bfe389a215e964b9988e Source 2: 9854924186b049144f7b767ee5d0ad6ac018eed9 Destination: ee6cccab815b86ef822a0e58accb16fadcec07d1 Scope: whole changes Message: keep destination description ! Rewrites local history. Command jj --no-pager --color always --repository /home/runner/work/jk/jk/target/manual-fixtures/squash-multiple.7PW1Z9/workfl ows.pl823U/squash squash --from 009f2ef4df11a52d27e4bfe389a215e964b9988e --from 9854924186b049144f7b767ee5d0ad6ac018eed9 --into ee6cccab815b86ef822a0e58accb16fadcec07d1 --use-destination-message enter run y copy esc cancel o options
Read the terminal text
jk jj @ tpnyooxs [email protected] 2026-01-01 12:00:00 fd3de8b5 │ (empty) (no description set) › ○ qzokrkon [email protected] 2026-01-01 12:00:00 18f8b8db · │ Squash destination ◆ zzzzzzzz root() 00000000 ✓ Squashed source changes · a u undo · C history ? help H home L log r refresh enter open d diff v evolog s status space mark o ops ... q quit
Read the terminal text
jk jj › @ wrxwmpnk [email protected] 2026-01-01 12:00:00 009f2ef4 · │ Squash second source ○ qspvuztq [email protected] 2026-01-01 12:00:00 98549241 │ Squash source ○ qzokrkon [email protected] 2026-01-01 12:00:00 ee6cccab │ Squash destination ◆ zzzzzzzz root() 00000000 ✓ Undid operation ? help H home L log r refresh enter open d diff v evolog s status space mark o ops ... q quit
Binary, tool versions, and file hashes · Accepted pixel, text/style, and video review · action-diagnostics/bin/dependencies.log · action-diagnostics/tape-1.log · Outcome assertions 1 · Outcome assertions 2 · Outcome assertions 3
All retained evidence (44 files)
Includes source tapes, original helper scripts, fixture details, terminal states, and logs.
- action-diagnostics/bin/dependencies.log
- action-diagnostics/manifest.json
- action-diagnostics/tape-1.log
- build-provenance.json
- capture.tape
- checkpoint-summary.json
- fixture-env.sh
- fixture.json
- manual-squash-multiple-cancelled-assertions.json
- manual-squash-multiple-preview.json
- manual-squash-multiple-preview.png
- manual-squash-multiple-recovered.json
- manual-squash-multiple-recovered.png
- manual-squash-multiple-success-assertions.json
- manual-squash-multiple-success.json
- manual-squash-multiple-success.png
- manual-squash-multiple-undone-assertions.json
- manual-squash-multiple.mp4
- manual-squash-multiple.tape
- source-scripts/abandon-dialog-fixture.sh
- source-scripts/action-menu-demo-fixture.sh
- source-scripts/betamax-cancellable-jj.sh
- source-scripts/betamax-fixture-env.sh
- source-scripts/betamax-fixture.sh
- source-scripts/betamax-setup.sh
- source-scripts/check-manual-coverage.py
- source-scripts/check-refresh-proof.py
- source-scripts/check-run-options-proof.py
- source-scripts/manual-assert.sh
- source-scripts/manual-audit-assert.py
- source-scripts/manual-fixture-jj.sh
- source-scripts/manual-fixture.sh
- source-scripts/manual-recordings.py
- source-scripts/package-release-archive.sh
- source-scripts/prepare-preview.sh
- source-scripts/reflow-rust-comments.py
- source-scripts/refs-remotes-demo-fixture.sh
- source-scripts/run-betamax.sh
- source-scripts/shared-selector-demo-fixture.sh
- source-scripts/test_manual_recordings.py
- source-scripts/workflows-demo-fixture.sh
- source-scripts/workspace-lifecycle-demo-fixture.sh
- source.tape
- accepted-review.json
Combine one source with an existing change
Screenshots and terminal evidence
Read the terminal text
jk jj * @ pwxzmmpu [email protected] 2026-01-01 12:00:00 ebc4b7e4 │ Squash source › ○ tzwuonrv [email protected] 2026-01-01 12:00:00 7be6b114 · │ Squash destination ◆ zzzzzzzz root() 00000000 jj squash into 7be6b114f42f77b7ea48930f480f931168734843 Source 1: ebc4b7e488c694a26159973b9d802467e883cdee Destination: 7be6b114f42f77b7ea48930f480f931168734843 Scope: whole changes Message: keep destination description ! Rewrites local history. Command jj --no-pager --color always --repository /home/runner/work/jk/jk/target/manual-fixtures/squash.wp39hi/workflows.kibey N/squash squash --from ebc4b7e488c694a26159973b9d802467e883cdee --into 7be6b114f42f77b7ea48930f480f931168734843 --use-destination-message enter run y copy esc cancel o options
Read the terminal text
jk jj @ zxnzyktr [email protected] 2026-01-01 12:00:00 5d4f2965 │ (empty) (no description set) › ○ tzwuonrv [email protected] 2026-01-01 12:00:00 74e3e883 · │ Squash destination ◆ zzzzzzzz root() 00000000 ✓ Squashed source changes · a u undo · C history ? help H home L log r refresh enter open d diff v evolog s status space mark o ops ... q quit
Read the terminal text
jk jj › @ pwxzmmpu [email protected] 2026-01-01 12:00:00 ebc4b7e4 · │ Squash source ○ tzwuonrv [email protected] 2026-01-01 12:00:00 7be6b114 │ Squash destination ◆ zzzzzzzz root() 00000000 ✓ Undid operation ? help H home L log r refresh enter open d diff v evolog s status space mark o ops ... q quit
Binary, tool versions, and file hashes · Accepted pixel, text/style, and video review · action-diagnostics/bin/dependencies.log · action-diagnostics/tape-1.log · Outcome assertions 1 · Outcome assertions 2 · Outcome assertions 3
All retained evidence (46 files)
Includes source tapes, original helper scripts, fixture details, terminal states, and logs.
- action-diagnostics/bin/dependencies.log
- action-diagnostics/manifest.json
- action-diagnostics/tape-1.log
- build-provenance.json
- capture.tape
- checkpoint-summary.json
- fixture-env.sh
- fixture.json
- manual-squash-cancelled-assertions.json
- manual-squash-preview.json
- manual-squash-preview.png
- manual-squash-recovered.json
- manual-squash-recovered.png
- manual-squash-success-assertions.json
- manual-squash-success.json
- manual-squash-success.png
- manual-squash-undone-assertions.json
- manual-squash.mp4
- manual-squash.tape
- source-scripts/abandon-dialog-fixture.sh
- source-scripts/action-menu-demo-fixture.sh
- source-scripts/betamax-cancellable-jj.sh
- source-scripts/betamax-fixture-env.sh
- source-scripts/betamax-fixture.sh
- source-scripts/betamax-setup.sh
- source-scripts/check-manual-coverage.py
- source-scripts/check-refresh-proof.py
- source-scripts/check-run-options-proof.py
- source-scripts/manual-assert.sh
- source-scripts/manual-audit-assert.py
- source-scripts/manual-fixture-jj.sh
- source-scripts/manual-fixture.sh
- source-scripts/manual-recordings.py
- source-scripts/package-release-archive.sh
- source-scripts/prepare-manual-evidence.py
- source-scripts/prepare-preview.sh
- source-scripts/reflow-rust-comments.py
- source-scripts/refs-remotes-demo-fixture.sh
- source-scripts/run-betamax.sh
- source-scripts/shared-selector-demo-fixture.sh
- source-scripts/test_manual_evidence.py
- source-scripts/test_manual_recordings.py
- source-scripts/workflows-demo-fixture.sh
- source-scripts/workspace-lifecycle-demo-fixture.sh
- source.tape
- accepted-review.json