Skip to content

I3160 — A behavioural case can be written as a Rust integration test over a disposable repository, and the continuity cases are the first ported

Add a typed fixture builder (disposable git repository, remote, fake clock, two checkouts) under apps/majordomus-cli/tests and port the continuity cases 821-827, whose behaviour is already Rust, with the same assertions, deleting the shell originals.

READY wave 0 · p2 · implementation profile · parallel safe

Part of automation — Repository automation is scripted capabilities over typed Rust, not shell.

Ready. Every dependency is done, so majordomus plan start I3160 will be accepted.

Objective

Add a typed fixture builder (disposable git repository, remote, fake clock, two checkouts) under apps/majordomus-cli/tests and port the continuity cases 821-827, whose behaviour is already Rust, with the same assertions, deleting the shell originals.

Why

Owner, 2026-10-12: port tests to Rust/Rhai. test/cases holds 527 shell files (ls test/cases | wc -l at 707a04c); shell cases share the defect classes ADR 0069 lists. This is harness maintenance: test/ is not governed by the automation inventory, so the port moves no class-A count and serves no criterion of repository-automation-is-typed. Sources: chatgpt-majordomus:c192#8, chatgpt-majordomus:c230#6.

Current state

apps/majordomus-cli/tests has Rust integration tests but no shared disposable-repository builder for behavioural cases.

Desired state

One builder and one family ported; coverage counted.

Scope

  • test/cases/821_a_session_moves_between_machines.sh
  • test/cases/822_a_dirty_handover_restores_context_not_source.sh
  • test/cases/823_the_same_work_continued_twice_is_a_conflict.sh
  • test/cases/824_separate_work_on_two_machines_is_not_a_conflict.sh
  • test/cases/825_a_handover_published_offline_waits_for_its_remote.sh
  • test/cases/826_a_handover_carrying_a_secret_is_not_published.sh
  • test/cases/827_a_record_is_admitted_before_it_is_read.sh
  • .ai/repo/ci/gates.yaml

Out of scope

  • Cases whose subject is still shell (they wait for the cutover)

Dependencies

None. This issue is a root of the graph.

Acceptance criteria

  • The seven cases pass as Rust tests and the shell files are gone
  • CI runs them in the same job class

Validation

  • cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test continuity --test continuity_transfer

Evidence required

  • test_continuity_cases_in_rust

Evidence

None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.

Timeline

started
—
verified
—
completed
—

Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.

Canonical record: .ai/repo/project/issues/I3160.yaml. Read it back with majordomus plan show I3160.

Searches the titles and descriptions of every page this site publishes.