gabriel / muse public
test task/issue-8-phase3 #1 / 1
AI Agent gabriel · 119 days ago · May 21, 2026 · Diff

test: phase 3 commit guard alignment for muse resolve (issue #8)

Verified that the commit guard at commit.py:305 reads conflict_paths (the mutable list) not original_conflict_paths — guard is already correct.

Added 20 integration tests across four classes: - TestCommitGuardReadsConflictPaths: unit-level guard verification - TestResolvePathThenCommit: resolve_path primitive → commit flow - TestResolveSymbolThenCommit: resolve_symbol primitive → commit flow - TestResolveCliThenCommitCli: full CLI end-to-end including --json and --all

sha256:5e60c0960248c6b0fd1b21ebdd84bac6f243b0605281a340f066b88b8cd5f9e9 sha
+45 symbols
sha256:2102012427723078411288468fc0c2d2a7d4b882ff43675036f13f05c837487d snapshot
+45
symbols added
0
dead code introduced
Semantic Changes 45 symbols
~ tests/test_resolve_phase3.py .py 45 symbols added
+ TestCommitGuardReadsConflictPaths class class TestCommitGuardReadsConflictPaths L83–130
+ test_commit_blocked_message_mentions_conflict method method test_commit_blocked_message_mentions_conflict L96–104
+ test_commit_blocked_while_conflict_paths_nonempty method method test_commit_blocked_while_conflict_paths_nonempty L86–94
+ test_commit_succeeds_when_conflict_paths_empty method method test_commit_succeeds_when_conflict_paths_empty L106–114
+ test_original_conflict_paths_does_not_block_commit method method test_original_conflict_paths_does_not_block_commit L116–130
+ TestResolveCliThenCommitCli class class TestResolveCliThenCommitCli L238–302
+ test_merge_state_absent_after_full_flow method method test_merge_state_absent_after_full_flow L294–302
+ test_resolve_cli_all_then_commit_succeeds method method test_resolve_cli_all_then_commit_succeeds L261–270
+ test_resolve_cli_already_resolved_exits_zero method method test_resolve_cli_already_resolved_exits_zero L287–292
+ test_resolve_cli_file_then_commit_succeeds method method test_resolve_cli_file_then_commit_succeeds L239–248
+ test_resolve_cli_json_output method method test_resolve_cli_json_output L272–279
+ test_resolve_cli_no_merge_in_progress_exits_nonzero method method test_resolve_cli_no_merge_in_progress_exits_nonzero L281–285
+ test_resolve_cli_symbol_then_commit_succeeds method method test_resolve_cli_symbol_then_commit_succeeds L250–259
+ TestResolvePathThenCommit class class TestResolvePathThenCommit L137–198
+ test_merge_state_cleared_after_commit method method test_merge_state_cleared_after_commit L173–179
+ test_original_conflict_paths_preserved_until_commit method method test_original_conflict_paths_preserved_until_commit L181–188
+ test_resolve_all_paths_unblocks_commit method method test_resolve_all_paths_unblocks_commit L159–171
+ test_resolve_path_partial_still_blocks method method test_resolve_path_partial_still_blocks L146–157
+ test_resolve_path_unblocks_commit method method test_resolve_path_unblocks_commit L138–144
+ test_symbol_level_conflicts_cleared_by_resolve_path method method test_symbol_level_conflicts_cleared_by_resolve_path L190–198
+ TestResolveSymbolThenCommit class class TestResolveSymbolThenCommit L205–231
+ test_resolve_all_symbols_unblocks_commit method method test_resolve_all_symbols_unblocks_commit L224–231
+ test_resolve_symbol_partial_still_blocks method method test_resolve_symbol_partial_still_blocks L216–222
+ test_resolve_symbol_unblocks_commit_when_last method method test_resolve_symbol_unblocks_commit_when_last L206–214
+ _BASE variable variable _BASE L34–34
+ _OURS variable variable _OURS L35–35
+ _THEIRS variable variable _THEIRS L36–36
+ _invoke function function _invoke L43–49
+ _set_merge_state function function _set_merge_state L62–70
+ _state function function _state L73–76
+ CliRunner import import CliRunner L30–30
+ MUSE_DIR import import MUSE_DIR L29–29
+ MergeState import import MergeState L22–22
+ annotations import import annotations L14–14
+ fake_id import import fake_id L29–29
+ json import import json L16–16
+ os import import os L17–17
+ pathlib import import pathlib L18–18
+ pytest import import pytest L20–20
+ read_merge_state import import read_merge_state L22–22
+ resolve_path import import resolve_path L22–22
+ resolve_symbol import import resolve_symbol L22–22
+ write_merge_state import import write_merge_state L22–22
+ repo function function repo L53–59
+ runner variable variable runner L32–32
← Older Oldest on task/issue-8-phase3
All commits
Newer → Latest on task/issue-8-phase3

0 comments

No comments yet. Be the first to start the discussion.

To add a comment, use the Muse CLI: muse hub commit comment sha256:5e60c0960248c6b0fd1b21ebdd84bac6f243b0605281a340f066b88b8cd5f9e9 --body "your comment"