New sessions/session_export tools plus a sessions_block vault map in the system prompt (tai.py, ported to detz); recall/search carry a session footer instead of letting the model grep sealed bytes. write_file refuses new markdown at working/repo roots, and the blanket *.md gitignore is gone so docs stay visible. One LineInput owns fd 0 for every prompt (ask, approvals, shell_ask, secrets), ending phantom-empty answers; Ctrl-C re-prompts (double exits), Ctrl-D exits, Ctrl-Z suspends; mid-turn Ctrl-C announces itself and kills foreground shell children via RunInterrupted. Covered by SessionsTests, repl_keys.py pty checks, agent_diff sessions_block cases.
12 KiB
12 KiB
Parity detz vs tai.py (generated, do not edit)
Generated by tools/parity_ledger.py from the symbol ledger and the last differential run.
Only a passing differential case (tools/parity_diff.py) makes a symbol verified; a facet
after the symbol says what that case proved (for example parse means argument parsing only).
name-only means an identifier matches in the C++ tree and NOTHING about behavior is known.
- tai.py sha256:
190a812c0cd8d167 - detz sha256:
c114480153577dfc - differential run: 2026-10-28T08:10:44 (tai.py
190a812c0cd8d167, detzc114480153577dfc)
Summary
| kind | total | verified | name-only | missing |
|---|---|---|---|---|
| class | 264 | 0 | 263 | 1 |
| method | 2144 | 0 | 1406 | 738 |
| function | 414 | 2 | 385 | 27 |
| tool | 63 | 0 | 63 | 0 |
| flag | 45 | 1 | 44 | 0 |
| setting | 28 | 0 | 28 | 0 |
| command | 31 | 5 | 23 | 3 |
| all | 2989 | 8 | 2212 | 769 |
Differential cases
Counts: fail=57, pass=6, xpass=1
| case | status | reason |
|---|---|---|
| cli.err.ambiguous.cap | fail | stderr differs (12 diff lines) |
| cli.err.ambiguous.debug | fail | stderr differs (12 diff lines) |
| cli.err.ambiguous.install | fail | stderr differs (12 diff lines) |
| cli.err.ambiguous.tui | fail | stderr differs (12 diff lines) |
| cli.err.auto.explicit | fail | stderr differs (12 diff lines) |
| cli.err.cap-cwd.missing | fail | stderr differs (12 diff lines) |
| cli.err.cap-manifest.explicit | fail | stderr differs (12 diff lines) |
| cli.err.cap-max-turns.int | fail | stderr differs (12 diff lines) |
| cli.err.cap-max-turns.missing | fail | stderr differs (12 diff lines) |
| cli.err.cap-model.missing | fail | stderr differs (12 diff lines) |
| cli.err.cap-permission-mode.choice | fail | stderr differs (12 diff lines) |
| cli.err.cap-permission-mode.missing | fail | stderr differs (12 diff lines) |
| cli.err.cap-speak.explicit | fail | stderr differs (12 diff lines) |
| cli.err.continue.explicit | fail | stderr differs (12 diff lines) |
| cli.err.debug-format.choice | fail | stderr differs (12 diff lines) |
| cli.err.debug-format.missing | fail | stderr differs (12 diff lines) |
| cli.err.debug.choice | fail | stderr differs (12 diff lines) |
| cli.err.demo-shot.explicit | fail | stderr differs (12 diff lines) |
| cli.err.demo.explicit | fail | stderr differs (12 diff lines) |
| cli.err.env.missing | fail | stderr differs (12 diff lines) |
| cli.err.error_before_help | fail | stderr differs (12 diff lines) |
| cli.err.eval-retrieval.explicit | fail | stderr differs (12 diff lines) |
| cli.err.install-telegram.explicit | fail | stderr differs (12 diff lines) |
| cli.err.install.explicit | fail | stderr differs (12 diff lines) |
| cli.err.mcp-bind.missing | fail | stderr differs (12 diff lines) |
| cli.err.mcp-port.int | fail | stderr differs (12 diff lines) |
| cli.err.mcp-port.missing | fail | stderr differs (12 diff lines) |
| cli.err.no-opencode.explicit | fail | stderr differs (12 diff lines) |
| cli.err.plexer-wrap.explicit | fail | stderr differs (12 diff lines) |
| cli.err.profile.missing | fail | stderr differs (12 diff lines) |
| cli.err.scheduler.explicit | fail | stderr differs (12 diff lines) |
| cli.err.serve-mcp.missing | fail | stderr differs (12 diff lines) |
| cli.err.stats-rag.explicit | fail | stderr differs (12 diff lines) |
| cli.err.telegram.explicit | fail | stderr differs (12 diff lines) |
| cli.err.theme.missing | fail | stderr differs (12 diff lines) |
| cli.err.tui-local.explicit | fail | stderr differs (12 diff lines) |
| cli.err.tui.explicit | fail | stderr differs (12 diff lines) |
| cli.err.uninstall-telegram.explicit | fail | stderr differs (12 diff lines) |
| cli.err.unknown.long | fail | stderr differs (12 diff lines) |
| cli.err.unknown.short | fail | stderr differs (12 diff lines) |
| cli.err.update-models.explicit | fail | stderr differs (12 diff lines) |
| cli.err.version.explicit | fail | stderr differs (12 diff lines) |
| cli.err.yes.explicit | fail | stderr differs (12 diff lines) |
| cli.err.yolo.explicit | fail | stderr differs (12 diff lines) |
| cli.help.long | fail | stdout differs (25 diff lines) |
| cli.help.short | fail | stdout differs (25 diff lines) |
| cli.help.wins_over_error | fail | stdout differs (25 diff lines) |
| cli.ok.cap-permission-mode.confirm | fail | stdout differs (6 diff lines) |
| cli.ok.cap-permission-mode.interactive | fail | stdout differs (6 diff lines) |
| cli.ok.cap-permission-mode.none | fail | stdout differs (6 diff lines) |
| cli.ok.debug-format.json | fail | stdout differs (6 diff lines) |
| cli.ok.debug-format.sentence | fail | stdout differs (6 diff lines) |
| cli.prefix.version | fail | stdout differs (6 diff lines) |
| cli.version.long | fail | stdout differs (6 diff lines) |
| cli.version.with_choice | fail | stdout differs (6 diff lines) |
| persist.restart_history | xpass | needs the foundation agent: vault events persistence and history resume across process restarts; detz has no REPL/agent |
| repl.skills_secret_schedules | fail | stdout differs (10 diff lines) |
| repl.tools | fail | stdout differs (11 diff lines) |
Python test-suite coverage
151 test classes, 1241 tests; tests reproduced by a passing diff case: 1 (in 1 classes); classes with no covered test: 150.
Full table: build/parity/tests-map.md.
flags (45)
| name | status | facets | cases |
|---|---|---|---|
--allow-tool |
name-only | ||
--argv |
name-only | ||
--auto |
name-only | ||
--auto-answer |
name-only | ||
--binary |
name-only | ||
--cap |
name-only | ||
--cap-cwd |
name-only | ||
--cap-manifest |
verified | output | cli.cap_manifest |
--cap-max-turns |
name-only | ||
--cap-model |
name-only | ||
--cap-permission-mode |
name-only | ||
--cap-speak |
name-only | ||
--continue |
name-only | ||
--cwd |
name-only | ||
--debug |
name-only | ||
--debug-format |
name-only | ||
--demo |
name-only | ||
--demo-shot |
name-only | ||
--deny-tool |
name-only | ||
--driver |
name-only | ||
--env |
name-only | ||
--eval-retrieval |
name-only | ||
--install |
name-only | ||
--install-telegram |
name-only | ||
--max-risk |
name-only | ||
--mcp-bind |
name-only | ||
--mcp-port |
name-only | ||
--model |
name-only | ||
--mplex |
name-only | ||
--no-opencode |
name-only | ||
--plexer-wrap |
name-only | ||
--profile |
name-only | ||
--scheduler |
name-only | ||
--serve-mcp |
name-only | ||
--stats-rag |
name-only | ||
--task |
name-only | ||
--telegram |
name-only | ||
--theme |
name-only | ||
--tui |
name-only | ||
--tui-local |
name-only | ||
--uninstall-telegram |
name-only | ||
--update-models |
name-only | ||
--version |
name-only | ||
--yes |
name-only | ||
--yolo |
name-only |
tools (63)
| name | status | facets | cases |
|---|---|---|---|
ask_user |
name-only | ||
audit |
name-only | ||
create_bot |
name-only | ||
create_skill |
name-only | ||
delete_file |
name-only | ||
delete_secret |
name-only | ||
describe_image |
name-only | ||
edit_file |
name-only | ||
export_terminal_log |
name-only | ||
fork |
name-only | ||
get_current_terminal_content |
name-only | ||
graph_link |
name-only | ||
graph_query |
name-only | ||
install |
name-only | ||
install_skill |
name-only | ||
list_secrets |
name-only | ||
list_terminals |
name-only | ||
listen |
name-only | ||
load_skill |
name-only | ||
mcp_add |
name-only | ||
mcp_call |
name-only | ||
mcp_disable |
name-only | ||
mcp_enable |
name-only | ||
mcp_list |
name-only | ||
mcp_login |
name-only | ||
mcp_remove |
name-only | ||
mcp_tools |
name-only | ||
plexer_read |
name-only | ||
plexer_send |
name-only | ||
plexer_show |
name-only | ||
plexer_status |
name-only | ||
plexer_type |
name-only | ||
poll |
name-only | ||
read_file |
name-only | ||
recall |
name-only | ||
record_delete |
name-only | ||
record_read |
name-only | ||
record_save |
name-only | ||
record_search |
name-only | ||
release |
name-only | ||
remember |
name-only | ||
restore |
name-only | ||
schedule |
name-only | ||
schedules |
name-only | ||
search |
name-only | ||
session_export |
name-only | ||
sessions |
name-only | ||
shell |
name-only | ||
speak |
name-only | ||
store_secret |
name-only | ||
sysinfo |
name-only | ||
tags |
name-only | ||
tail_terminals |
name-only | ||
tui_click |
name-only | ||
tui_goto |
name-only | ||
tui_keys |
name-only | ||
tui_result |
name-only | ||
tui_screen |
name-only | ||
tui_type |
name-only | ||
unschedule |
name-only | ||
web_fetch |
name-only | ||
web_search |
name-only | ||
write_file |
name-only |
settings (28)
| name | status | facets | cases |
|---|---|---|---|
backends |
name-only | ||
box_caps |
name-only | ||
claude_bin |
name-only | ||
codex_bin |
name-only | ||
codex_sandbox |
name-only | ||
devplace_base |
name-only | ||
devplace_key |
name-only | ||
devplace_models |
name-only | ||
gemini_bin |
name-only | ||
gemini_plan |
name-only | ||
grok_bin |
name-only | ||
model |
name-only | ||
muse_bin |
name-only | ||
opencode_bin |
name-only | ||
opencode_client_name |
name-only | ||
opencode_client_ua |
name-only | ||
opencode_enabled |
name-only | ||
opencode_models |
name-only | ||
openrouter_enabled |
name-only | ||
openrouter_key |
name-only | ||
openrouter_models |
name-only | ||
pollinations_enabled |
name-only | ||
pollinations_models |
name-only | ||
retry_seconds |
name-only | ||
theme |
name-only | ||
voice |
name-only | ||
zen_enabled |
name-only | ||
zen_models |
name-only |
commands (31)
| name | status | facets | cases |
|---|---|---|---|
/agent |
name-only | ||
/agents |
name-only | ||
/audit |
name-only | ||
/bot |
missing | ||
/bots |
verified | all | repl.profiles |
/clear |
name-only | ||
/compact |
name-only | ||
/ctx |
missing | ||
/demo |
name-only | ||
/env |
missing | ||
/fork |
name-only | ||
/graph |
name-only | ||
/help |
verified | all | repl.help |
/install |
name-only | ||
/models |
name-only | ||
/profile |
verified | all | repl.profiles |
/profiles |
verified | all | repl.profiles |
/quit |
name-only | ||
/record |
name-only | ||
/records |
name-only | ||
/release |
name-only | ||
/restore |
name-only | ||
/schedule |
name-only | ||
/schedules |
name-only | ||
/search |
name-only | ||
/secret |
name-only | ||
/skills |
name-only | ||
/sysinfo |
name-only | ||
/tags |
name-only | ||
/tools |
verified | all | repl.tools_named |
/unschedule |
name-only |
Classes with the most missing methods (top 25 of 227)
| class | missing methods |
|---|---|
| MplexCopyMode | 19 |
| TuiPanel | 14 |
| GrrShell | 13 |
| TuiApp | 12 |
| MplexPane | 10 |
| DebugLog | 9 |
| GrrView | 9 |
| GrrChatView | 9 |
| GrrPaneFiles | 9 |
| GrrPanePreview | 9 |
| TuiVtScreen | 8 |
| GrrClient | 8 |
| GrrItem | 8 |
| ChatClient | 7 |
| MplexOptions | 7 |
| MplexClient | 7 |
| TuiCompositor | 7 |
| GrrFormat | 7 |
| GrrRouter | 7 |
| GrrProfileView | 7 |
| GrrPaneTab | 7 |
| GrrControl | 7 |
| CapDriver | 7 |
| CapPtyDriver | 7 |
| LaneBoard | 6 |