Skip to content

desktop/src-tauri/crates/core/tests/opencode_contract.rs

Comment 1, line 1

desktop/src-tauri/crates/core/tests/opencode_contract.rs:1

//! OpenCode tests include synthetic samples based on A17 source 0027387 and

Comment 2, line 2

desktop/src-tauri/crates/core/tests/opencode_contract.rs:2

//! real sanitized official CLI/local-model samples from 1.18.34.

Comment 3, line 3

desktop/src-tauri/crates/core/tests/opencode_contract.rs:3

//! Read, parse, create per-step events, commit and query; compare the manually

Comment 4, line 4

desktop/src-tauri/crates/core/tests/opencode_contract.rs:4

//! calculated tests/fixtures/opencode/*/_expectations.md values without changing calculation rules.

Comment 5, line 5

desktop/src-tauri/crates/core/tests/opencode_contract.rs:5

//!

Comment 6, line 6

desktop/src-tauri/crates/core/tests/opencode_contract.rs:6

//! Helpers were copied from tests/common/mod.rs and tests/hermes_contract.rs during

Comment 7, line 7

desktop/src-tauri/crates/core/tests/opencode_contract.rs:7

//! the earlier task, which kept shared common unchanged to avoid concurrent edits.

Comment 8, line 55

desktop/src-tauri/crates/core/tests/opencode_contract.rs:55

/// serde_json to SQLite values, copied from tests/common/mod.rs json_to_sql.

Comment 9, line 90

desktop/src-tauri/crates/core/tests/opencode_contract.rs:90

/// Rebuild SQLite from sanitized {schema:{session_ddl,message_ddl,part_ddl},sessions,messages,parts}

Comment 10, line 91

desktop/src-tauri/crates/core/tests/opencode_contract.rs:91

/// at <dir>/opencode/opencode.db and return the data directory

Comment 11, line 92

desktop/src-tauri/crates/core/tests/opencode_contract.rs:92

/// for manual-root discovery.

Comment 12, line 158

desktop/src-tauri/crates/core/tests/opencode_contract.rs:158

/// Emulate the former parser's complete events and checkpoints for upgrade tests.

Comment 13, line 245

desktop/src-tauri/crates/core/tests/opencode_contract.rs:245

// Synthetic continuation of the genuine wire shape, with matching session counters.

Comment 14, line 400

desktop/src-tauri/crates/core/tests/opencode_contract.rs:400

// A new known-only window must not erase the older unknown record's compatibility.

Comment 15, line 550

desktop/src-tauri/crates/core/tests/opencode_contract.rs:550

// Large tuples lack PartialEq; compare all selected fields in two nonoverlapping groups.

Comment 16, line 593

desktop/src-tauri/crates/core/tests/opencode_contract.rs:593

/// Selected event fields, one row per per-step event.

Comment 17, line 670

desktop/src-tauri/crates/core/tests/opencode_contract.rs:670

// Compare every field of the three per-step events with _expectations.md.

Comment 18, line 710

desktop/src-tauri/crates/core/tests/opencode_contract.rs:710

// SQL excludes text parts; compare summary totals with _expectations.md.

Comment 19, line 719

desktop/src-tauri/crates/core/tests/opencode_contract.rs:719

// Both session cumulative comparisons match: five-column sums equal their part sums through projector applyUsage.

Comment 20, line 726

desktop/src-tauri/crates/core/tests/opencode_contract.rs:726

// Synthetic old-version records have no native version verification and retain latest_fallback.

Comment 21, line 749

desktop/src-tauri/crates/core/tests/opencode_contract.rs:749

// Repeated scanning adds no duplicate usage.

Comment 22, line 785

desktop/src-tauri/crates/core/tests/opencode_contract.rs:785

// File is not SQLite.

Comment 23, line 795

desktop/src-tauri/crates/core/tests/opencode_contract.rs:795

// SQLite exists but lacks the three required tables.

Comment 24, line 804

desktop/src-tauri/crates/core/tests/opencode_contract.rs:804

// A derived session_message table without part is rejected as an unverified format.

Comment 25, line 822

desktop/src-tauri/crates/core/tests/opencode_contract.rs:822

// Empty session/part tables remain Pending for later detection.

Comment 26, line 848

desktop/src-tauri/crates/core/tests/opencode_contract.rs:848

// OpenCode session tokens_* columns and message without agent_id fail the MiMo fingerprint.

Comment 27, line 861

desktop/src-tauri/crates/core/tests/opencode_contract.rs:861

// Conversely, MiMo without tokens_* columns fails the OpenCode fingerprint.

Comment 28, line 903

desktop/src-tauri/crates/core/tests/opencode_contract.rs:903

// XDG layout: <XDG_DATA_HOME>/opencode/opencode.db.

Comment 29, line 913

desktop/src-tauri/crates/core/tests/opencode_contract.rs:913

// XDG_DATA_HOME follows the referenced global.ts xdgData lookup.

Comment 30, line 937

desktop/src-tauri/crates/core/tests/opencode_contract.rs:937

// A manual parent root discovers <root>/opencode.

Comment 31, line 947

desktop/src-tauri/crates/core/tests/opencode_contract.rs:947

// No recursive filename search: the grandparent here has no accepted direct database

Comment 32, line 948

desktop/src-tauri/crates/core/tests/opencode_contract.rs:948

// or child data-directory layout and yields no root. This avoids scanning deeper

Comment 33, line 949

desktop/src-tauri/crates/core/tests/opencode_contract.rs:949

// unrelated directories such as Kilo's observed opencode-rc.db location.

Comment 34, line 960

desktop/src-tauri/crates/core/tests/opencode_contract.rs:960

// Default ~/.local/share/opencode is absent under the temporary home and yields no root.