agent-postmortem 0.3.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- agent_postmortem-0.3.4/.claude-plugin/marketplace.json +14 -0
- agent_postmortem-0.3.4/.github/ISSUE_TEMPLATE/bug_report.yml +54 -0
- agent_postmortem-0.3.4/.github/ISSUE_TEMPLATE/confusing_output.yml +55 -0
- agent_postmortem-0.3.4/.github/ISSUE_TEMPLATE/detector_request.yml +38 -0
- agent_postmortem-0.3.4/.github/ISSUE_TEMPLATE/run_shape_not_covered.yml +70 -0
- agent_postmortem-0.3.4/.github/ISSUE_TEMPLATE/wrong_verdict.yml +70 -0
- agent_postmortem-0.3.4/.github/PULL_REQUEST_TEMPLATE.md +11 -0
- agent_postmortem-0.3.4/.github/workflows/ci.yml +48 -0
- agent_postmortem-0.3.4/.github/workflows/release.yml +83 -0
- agent_postmortem-0.3.4/.gitignore +12 -0
- agent_postmortem-0.3.4/CHANGELOG.md +460 -0
- agent_postmortem-0.3.4/CLAUDE.md +74 -0
- agent_postmortem-0.3.4/CONTRIBUTING.md +112 -0
- agent_postmortem-0.3.4/LICENSE +21 -0
- agent_postmortem-0.3.4/PKG-INFO +264 -0
- agent_postmortem-0.3.4/README.md +241 -0
- agent_postmortem-0.3.4/docs/DESIGN.md +7092 -0
- agent_postmortem-0.3.4/plugin/.claude-plugin/plugin.json +13 -0
- agent_postmortem-0.3.4/plugin/README.md +57 -0
- agent_postmortem-0.3.4/plugin/hooks/hooks.json +60 -0
- agent_postmortem-0.3.4/plugin/hooks/run.sh +417 -0
- agent_postmortem-0.3.4/plugin/skills/postmortem/SKILL.md +118 -0
- agent_postmortem-0.3.4/plugin/skills/rescue/SKILL.md +117 -0
- agent_postmortem-0.3.4/pyproject.toml +55 -0
- agent_postmortem-0.3.4/scripts/check-privacy.sh +108 -0
- agent_postmortem-0.3.4/scripts/export-public.sh +95 -0
- agent_postmortem-0.3.4/src/agent_postmortem/__init__.py +9 -0
- agent_postmortem-0.3.4/src/agent_postmortem/argerrors.py +160 -0
- agent_postmortem-0.3.4/src/agent_postmortem/claims.py +43 -0
- agent_postmortem-0.3.4/src/agent_postmortem/cli.py +2278 -0
- agent_postmortem-0.3.4/src/agent_postmortem/commands.py +1543 -0
- agent_postmortem-0.3.4/src/agent_postmortem/config.py +435 -0
- agent_postmortem-0.3.4/src/agent_postmortem/demo/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-d30/agent-ac200000000000001.jsonl +5 -0
- agent_postmortem-0.3.4/src/agent_postmortem/demo/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-d30/agent-ac200000000000001.meta.json +8 -0
- agent_postmortem-0.3.4/src/agent_postmortem/demo/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-d30/agent-ac200000000000002.jsonl +2 -0
- agent_postmortem-0.3.4/src/agent_postmortem/demo/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-d30/agent-ac200000000000002.meta.json +8 -0
- agent_postmortem-0.3.4/src/agent_postmortem/demo/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-d30/agent-ac200000000000003.jsonl +5 -0
- agent_postmortem-0.3.4/src/agent_postmortem/demo/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-d30/agent-ac200000000000003.meta.json +8 -0
- agent_postmortem-0.3.4/src/agent_postmortem/demo/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-d30/agent-ac200000000000004.jsonl +2 -0
- agent_postmortem-0.3.4/src/agent_postmortem/demo/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-d30/agent-ac200000000000004.meta.json +8 -0
- agent_postmortem-0.3.4/src/agent_postmortem/demo/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-d30/journal.jsonl +7 -0
- agent_postmortem-0.3.4/src/agent_postmortem/demo/-home-user-project/00000000-0000-4000-8000-000000000000.jsonl +4 -0
- agent_postmortem-0.3.4/src/agent_postmortem/detectors/__init__.py +98 -0
- agent_postmortem-0.3.4/src/agent_postmortem/detectors/attempt_failed.py +261 -0
- agent_postmortem-0.3.4/src/agent_postmortem/detectors/base.py +319 -0
- agent_postmortem-0.3.4/src/agent_postmortem/detectors/bash_backgrounded.py +72 -0
- agent_postmortem-0.3.4/src/agent_postmortem/detectors/bash_timeout.py +94 -0
- agent_postmortem-0.3.4/src/agent_postmortem/detectors/claim_contradiction.py +251 -0
- agent_postmortem-0.3.4/src/agent_postmortem/detectors/classifier_unavailable.py +73 -0
- agent_postmortem-0.3.4/src/agent_postmortem/detectors/codex_unavailable.py +102 -0
- agent_postmortem-0.3.4/src/agent_postmortem/detectors/codex_write_denied.py +100 -0
- agent_postmortem-0.3.4/src/agent_postmortem/detectors/git_cwd_mismatch.py +74 -0
- agent_postmortem-0.3.4/src/agent_postmortem/detectors/mislabeled_kill.py +164 -0
- agent_postmortem-0.3.4/src/agent_postmortem/detectors/missing_artifact.py +159 -0
- agent_postmortem-0.3.4/src/agent_postmortem/detectors/permission_denied.py +99 -0
- agent_postmortem-0.3.4/src/agent_postmortem/detectors/silent_retry.py +163 -0
- agent_postmortem-0.3.4/src/agent_postmortem/detectors/structured_output_failure.py +91 -0
- agent_postmortem-0.3.4/src/agent_postmortem/detectors/tool_json_error.py +77 -0
- agent_postmortem-0.3.4/src/agent_postmortem/detectors/wasted_time.py +125 -0
- agent_postmortem-0.3.4/src/agent_postmortem/detectors/workflow_failed.py +62 -0
- agent_postmortem-0.3.4/src/agent_postmortem/disclosure.py +931 -0
- agent_postmortem-0.3.4/src/agent_postmortem/hooks/model_allocation_guard.mjs +248 -0
- agent_postmortem-0.3.4/src/agent_postmortem/hooks_cli.py +1269 -0
- agent_postmortem-0.3.4/src/agent_postmortem/ledger.py +624 -0
- agent_postmortem-0.3.4/src/agent_postmortem/markers.py +505 -0
- agent_postmortem-0.3.4/src/agent_postmortem/models.py +815 -0
- agent_postmortem-0.3.4/src/agent_postmortem/observe.py +792 -0
- agent_postmortem-0.3.4/src/agent_postmortem/reader.py +4611 -0
- agent_postmortem-0.3.4/src/agent_postmortem/redact.py +1981 -0
- agent_postmortem-0.3.4/src/agent_postmortem/report.py +3010 -0
- agent_postmortem-0.3.4/src/agent_postmortem/rescue.py +2096 -0
- agent_postmortem-0.3.4/src/agent_postmortem/returns.py +499 -0
- agent_postmortem-0.3.4/src/agent_postmortem/rules.py +627 -0
- agent_postmortem-0.3.4/src/agent_postmortem/severity.py +275 -0
- agent_postmortem-0.3.4/src/agent_postmortem/state.py +1261 -0
- agent_postmortem-0.3.4/src/agent_postmortem/trend.py +391 -0
- agent_postmortem-0.3.4/src/agent_postmortem/watch.py +973 -0
- agent_postmortem-0.3.4/tests/conftest.py +37 -0
- agent_postmortem-0.3.4/tests/fixtures/README.md +534 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/demo__share.txt +366 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/rescue_plan__local.txt +2239 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/rescue_plan__raw.txt +2239 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/rescue_plan__share.txt +2239 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/rescue_status__local.txt +718 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/rescue_status__raw.txt +718 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/rescue_status__share.txt +718 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/rules__local.txt +46 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/rules__raw.txt +46 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/rules__share.txt +46 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/rules_all__local.txt +66 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/rules_all__raw.txt +66 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/rules_all__share.txt +66 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/rules_propose__local.txt +80 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/rules_propose__raw.txt +80 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/rules_propose__share.txt +80 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/rules_review__local.txt +52 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/rules_review__raw.txt +52 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/rules_review__share.txt +52 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/rules_show__local.txt +16 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/rules_show__raw.txt +16 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/rules_show__share.txt +16 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/run__local.txt +5913 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/run__raw.txt +5913 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/run__share.txt +5913 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/scan__local.txt +649 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/scan__raw.txt +649 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/scan__share.txt +649 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/scan_all__local.txt +649 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/scan_all__raw.txt +649 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/scan_all__share.txt +649 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/trend__local.txt +518 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/trend__raw.txt +518 -0
- agent_postmortem-0.3.4/tests/fixtures/golden/schema3/trend__share.txt +518 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000001.jsonl +4 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000001.meta.json +1 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000002.jsonl +3 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000002.meta.json +1 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000003.jsonl +3 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000003.meta.json +1 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000004.jsonl +3 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000004.meta.json +1 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000005.jsonl +5 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000005.meta.json +1 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000006.jsonl +3 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000006.meta.json +1 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000008.jsonl +5 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000008.meta.json +1 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000009.jsonl +5 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000009.meta.json +1 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000010.jsonl +5 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000010.meta.json +1 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000011.jsonl +4 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000011.meta.json +1 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/journal.jsonl +22 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_failed_causes/agent-af100000000000001.jsonl +3 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_failed_causes/agent-af100000000000001.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_failed_causes/agent-af100000000000002.jsonl +3 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_failed_causes/agent-af100000000000002.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_failed_causes/agent-af100000000000003.jsonl +3 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_failed_causes/agent-af100000000000003.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_failed_causes/agent-af100000000000004.jsonl +3 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_failed_causes/agent-af100000000000004.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_failed_causes/agent-af100000000000005.jsonl +3 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_failed_causes/agent-af100000000000005.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_failed_causes/agent-af100000000000006.jsonl +3 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_failed_causes/agent-af100000000000006.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_failed_causes/agent-af100000000000007.jsonl +3 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_failed_causes/agent-af100000000000007.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_failed_causes/agent-af1000000000000a1.jsonl +3 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_failed_causes/agent-af1000000000000a1.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_failed_causes/agent-af1000000000000a2.jsonl +3 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_failed_causes/agent-af1000000000000a2.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_failed_causes/agent-af1000000000000a3.jsonl +3 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_failed_causes/agent-af1000000000000a3.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_failed_causes/agent-af1000000000000a4.jsonl +3 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_failed_causes/agent-af1000000000000a4.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_failed_causes/journal.jsonl +23 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_failed_retry_tail/agent-afa10000000000001.jsonl +2 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_failed_retry_tail/agent-afa10000000000001.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_failed_retry_tail/agent-afa10000000000002.jsonl +2 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_failed_retry_tail/agent-afa10000000000002.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_failed_retry_tail/agent-afb10000000000001.jsonl +2 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_failed_retry_tail/agent-afb10000000000001.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/attempt_failed_retry_tail/journal.jsonl +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/bash_backgrounded_timeout/agent-ac300000000000001.jsonl +6 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/bash_backgrounded_timeout/agent-ac300000000000001.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/bash_backgrounded_timeout/journal.jsonl +3 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/claim_contradiction/journal.jsonl +23 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/clean_run/agent-ac100000000000001.jsonl +5 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/clean_run/agent-ac100000000000001.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/clean_run/agent-ac100000000000002.jsonl +4 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/clean_run/agent-ac100000000000002.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/clean_run/journal.jsonl +5 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/codex_unavailable/agent-ae100000000000001.jsonl +4 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/codex_unavailable/agent-ae100000000000001.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/codex_unavailable/agent-ae100000000000002.jsonl +2 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/codex_unavailable/agent-ae100000000000002.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/codex_unavailable/agent-ae100000000000003.jsonl +4 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/codex_unavailable/agent-ae100000000000003.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/codex_unavailable/agent-ae100000000000004.jsonl +6 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/codex_unavailable/agent-ae100000000000004.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/codex_unavailable/journal.jsonl +9 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/codex_write_denied/agent-ac500000000000001.jsonl +4 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/codex_write_denied/agent-ac500000000000001.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/codex_write_denied/agent-ac500000000000002.jsonl +4 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/codex_write_denied/agent-ac500000000000002.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/codex_write_denied/agent-ac500000000000003.jsonl +4 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/codex_write_denied/agent-ac500000000000003.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/codex_write_denied/journal.jsonl +7 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/evidence_noise/agent-acf00000000000001.jsonl +5 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/evidence_noise/agent-acf00000000000001.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/evidence_noise/journal.jsonl +2 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/hook_session/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-ae300000000000001.jsonl +4 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/hook_session/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-ae300000000000001.meta.json +1 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/hook_session/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-710/agent-ae100000000000001.jsonl +4 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/hook_session/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-710/agent-ae100000000000001.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/hook_session/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-710/agent-ae100000000000002.jsonl +4 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/hook_session/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-710/agent-ae100000000000002.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/hook_session/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-710/journal.jsonl +4 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/hook_session/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-720/agent-ae200000000000001.jsonl +2 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/hook_session/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-720/agent-ae200000000000001.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/hook_session/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-720/journal.jsonl +2 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/hook_session/-home-user-project/00000000-0000-4000-8000-000000000000.jsonl +6 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/incomplete_journal/agent-ad000000000000001.jsonl +2 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/incomplete_journal/agent-ad000000000000001.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/incomplete_journal/journal.jsonl +4 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_malformed_fields/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af1/agent-aee00000000000001.jsonl +2 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_malformed_fields/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af1/agent-aee00000000000001.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_malformed_fields/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af1/agent-aee00000000000003.jsonl +2 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_malformed_fields/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af1/agent-aee00000000000003.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_malformed_fields/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af1/agent-aee00000000000004.jsonl +2 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_malformed_fields/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af1/agent-aee00000000000004.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_malformed_fields/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af1/journal.jsonl +9 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_malformed_fields/-home-user-project/00000000-0000-4000-8000-000000000000.jsonl +3 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_state_orphan_failed/journal.jsonl +2 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_state_resolved/agent-ad200000000000001.jsonl +2 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_state_resolved/agent-ad200000000000001.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_state_resolved/agent-ad300000000000001.jsonl +2 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_state_resolved/agent-ad300000000000001.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_state_resolved/agent-ad400000000000001.jsonl +2 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_state_resolved/agent-ad400000000000001.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_state_resolved/agent-ad400000000000002.jsonl +2 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_state_resolved/agent-ad400000000000002.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_state_resolved/agent-ad500000000000001.jsonl +3 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_state_resolved/agent-ad500000000000001.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_state_resolved/agent-ad500000000000002.jsonl +2 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_state_resolved/agent-ad500000000000002.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_state_resolved/agent-ad600000000000001.jsonl +2 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_state_resolved/agent-ad600000000000001.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_state_resolved/agent-ad600000000000002.jsonl +2 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_state_resolved/agent-ad600000000000002.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_state_resolved/agent-ad700000000000001.jsonl +2 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_state_resolved/agent-ad700000000000001.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_state_resolved/agent-ad800000000000001.jsonl +3 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_state_resolved/agent-ad800000000000001.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_state_resolved/journal.jsonl +20 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_state_unresolved/agent-ad900000000000001.jsonl +2 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_state_unresolved/agent-ad900000000000001.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/journal_state_unresolved/journal.jsonl +3 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/missing_artifact/agent-ac600000000000001.jsonl +2 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/missing_artifact/agent-ac600000000000001.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/missing_artifact/agent-ac600000000000002.jsonl +2 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/missing_artifact/agent-ac600000000000002.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/missing_artifact/journal.jsonl +5 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/reader_minimal/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_a0000000-001/journal.jsonl +1 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/reader_minimal/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_b0000000-002/agent-a1111111111111111.jsonl +5 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/reader_minimal/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_b0000000-002/agent-a1111111111111111.meta.json +1 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/reader_minimal/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_b0000000-002/agent-a2222222222222222.jsonl +4 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/reader_minimal/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_b0000000-002/agent-a2222222222222222.meta.json +1 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/reader_minimal/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_b0000000-002/journal.jsonl +4 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/reader_minimal/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_c0000000-003/journal.jsonl +1 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/redaction_adversarial/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-960/agent-ad100000000000001.jsonl +2 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/redaction_adversarial/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-960/agent-ad100000000000001.meta.json +1 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/redaction_adversarial/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-960/journal.jsonl +3 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/self_reference/agent-af000000000000001.jsonl +4 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/self_reference/agent-af000000000000001.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/self_reference/agent-af000000000000002.jsonl +4 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/self_reference/agent-af000000000000002.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/self_reference/agent-af000000000000003.jsonl +4 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/self_reference/agent-af000000000000003.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/self_reference/agent-af000000000000004.jsonl +2 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/self_reference/agent-af000000000000004.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/self_reference/agent-af000000000000005.jsonl +4 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/self_reference/agent-af000000000000005.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/self_reference/journal.jsonl +11 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/session_bridge_only/-home-user-project/00000000-0000-4000-8000-000000000000.jsonl +1 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/session_clean/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-ac700000000000001.jsonl +4 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/session_clean/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-ac700000000000001.meta.json +1 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/session_clean/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-ac700000000000002.jsonl +4 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/session_clean/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-ac700000000000002.meta.json +1 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/session_clean/-home-user-project/00000000-0000-4000-8000-000000000000.jsonl +6 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/session_compaction/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-aca00000000000001.jsonl +4 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/session_compaction/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-aca00000000000001.meta.json +1 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/session_compaction/-home-user-project/00000000-0000-4000-8000-000000000000.jsonl +2 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/session_dedup/-home-user-project/00000000-0000-4000-8000-000000000000.jsonl +4 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/session_envelope/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-ac900000000000001.jsonl +4 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/session_envelope/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-ac900000000000001.meta.json +1 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/session_envelope/-home-user-project/00000000-0000-4000-8000-000000000000.jsonl +4 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/session_human_interrupt/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-acc00000000000001.jsonl +3 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/session_human_interrupt/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-acc00000000000001.meta.json +1 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/session_human_interrupt/-home-user-project/00000000-0000-4000-8000-000000000000.jsonl +3 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/session_parent_stop/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-acb00000000000001.jsonl +3 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/session_parent_stop/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-acb00000000000001.meta.json +1 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/session_parent_stop/-home-user-project/00000000-0000-4000-8000-000000000000.jsonl +4 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/session_unattributed_long/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-acd00000000000001.jsonl +3 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/session_unattributed_long/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-acd00000000000001.meta.json +1 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/session_unattributed_long/-home-user-project/00000000-0000-4000-8000-000000000000.jsonl +2 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/session_unattributed_short/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-ace00000000000001.jsonl +3 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/session_unattributed_short/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-ace00000000000001.meta.json +1 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/session_unattributed_short/-home-user-project/00000000-0000-4000-8000-000000000000.jsonl +2 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/structured_output_corrupt/agent-ac400000000000001.jsonl +6 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/structured_output_corrupt/agent-ac400000000000001.meta.json +8 -0
- agent_postmortem-0.3.4/tests/fixtures/runs/structured_output_corrupt/journal.jsonl +3 -0
- agent_postmortem-0.3.4/tests/g_corpus_support.py +449 -0
- agent_postmortem-0.3.4/tests/g_helpers.py +207 -0
- agent_postmortem-0.3.4/tests/g_independent_return.py +415 -0
- agent_postmortem-0.3.4/tests/n3b_helpers.py +80 -0
- agent_postmortem-0.3.4/tests/n3b_planted.py +166 -0
- agent_postmortem-0.3.4/tests/n4_reference_commands.py +1412 -0
- agent_postmortem-0.3.4/tests/n4b2_helpers.py +158 -0
- agent_postmortem-0.3.4/tests/n5b_helpers.py +217 -0
- agent_postmortem-0.3.4/tests/n5c1_helpers.py +236 -0
- agent_postmortem-0.3.4/tests/n5c2_helpers.py +168 -0
- agent_postmortem-0.3.4/tests/n6_helpers.py +214 -0
- agent_postmortem-0.3.4/tests/privacy_rules.py +521 -0
- agent_postmortem-0.3.4/tests/rule_fixtures.py +166 -0
- agent_postmortem-0.3.4/tests/synthetic-ids.txt +547 -0
- agent_postmortem-0.3.4/tests/test_attempt_facts.py +535 -0
- agent_postmortem-0.3.4/tests/test_attempt_failed.py +314 -0
- agent_postmortem-0.3.4/tests/test_attribution.py +448 -0
- agent_postmortem-0.3.4/tests/test_bug_report.py +203 -0
- agent_postmortem-0.3.4/tests/test_claim_contradiction.py +391 -0
- agent_postmortem-0.3.4/tests/test_cli_smoke.py +998 -0
- agent_postmortem-0.3.4/tests/test_codex_unavailable.py +234 -0
- agent_postmortem-0.3.4/tests/test_config.py +270 -0
- agent_postmortem-0.3.4/tests/test_deep_lines.py +406 -0
- agent_postmortem-0.3.4/tests/test_detectors_base.py +141 -0
- agent_postmortem-0.3.4/tests/test_detectors_core.py +408 -0
- agent_postmortem-0.3.4/tests/test_detectors_registry.py +147 -0
- agent_postmortem-0.3.4/tests/test_detectors_tooling.py +997 -0
- agent_postmortem-0.3.4/tests/test_disclosure_primitives.py +2709 -0
- agent_postmortem-0.3.4/tests/test_empty_state.py +198 -0
- agent_postmortem-0.3.4/tests/test_export.py +369 -0
- agent_postmortem-0.3.4/tests/test_export_public.py +122 -0
- agent_postmortem-0.3.4/tests/test_fa_commit_no_id.py +318 -0
- agent_postmortem-0.3.4/tests/test_fa_fork.py +448 -0
- agent_postmortem-0.3.4/tests/test_fa_generations.py +373 -0
- agent_postmortem-0.3.4/tests/test_fa_path_token.py +424 -0
- agent_postmortem-0.3.4/tests/test_fa_return_boundary.py +137 -0
- agent_postmortem-0.3.4/tests/test_fa_wasted.py +316 -0
- agent_postmortem-0.3.4/tests/test_fb_here.py +323 -0
- agent_postmortem-0.3.4/tests/test_fb_live_now.py +279 -0
- agent_postmortem-0.3.4/tests/test_fb_rescue_live.py +404 -0
- agent_postmortem-0.3.4/tests/test_fc_fix10_redact.py +368 -0
- agent_postmortem-0.3.4/tests/test_fc_fix11_redact.py +150 -0
- agent_postmortem-0.3.4/tests/test_fc_fix12_redact.py +109 -0
- agent_postmortem-0.3.4/tests/test_fc_fix1_commit.py +118 -0
- agent_postmortem-0.3.4/tests/test_fc_fix1_launch.py +73 -0
- agent_postmortem-0.3.4/tests/test_fc_fix1_poll.py +103 -0
- agent_postmortem-0.3.4/tests/test_fc_fix1_redact.py +280 -0
- agent_postmortem-0.3.4/tests/test_fc_fix2_launch.py +144 -0
- agent_postmortem-0.3.4/tests/test_fc_fix2_poll.py +147 -0
- agent_postmortem-0.3.4/tests/test_fc_fix2_redact.py +116 -0
- agent_postmortem-0.3.4/tests/test_fc_fix3_redact.py +230 -0
- agent_postmortem-0.3.4/tests/test_fc_fix4_fuzz.py +98 -0
- agent_postmortem-0.3.4/tests/test_fc_fix4_lexer.py +596 -0
- agent_postmortem-0.3.4/tests/test_fc_fix4_redact.py +509 -0
- agent_postmortem-0.3.4/tests/test_fc_fix4_sinks.py +306 -0
- agent_postmortem-0.3.4/tests/test_fc_fix5_lexer.py +402 -0
- agent_postmortem-0.3.4/tests/test_fc_fix5_redact.py +453 -0
- agent_postmortem-0.3.4/tests/test_fc_fix5_sinks.py +135 -0
- agent_postmortem-0.3.4/tests/test_fc_fix6_fuzz.py +111 -0
- agent_postmortem-0.3.4/tests/test_fc_fix6_hook.py +133 -0
- agent_postmortem-0.3.4/tests/test_fc_fix6_lexer.py +243 -0
- agent_postmortem-0.3.4/tests/test_fc_fix6_redact.py +543 -0
- agent_postmortem-0.3.4/tests/test_fc_fix6_sinks.py +401 -0
- agent_postmortem-0.3.4/tests/test_fc_fix6b_title.py +93 -0
- agent_postmortem-0.3.4/tests/test_fc_fix7_e2e.py +120 -0
- agent_postmortem-0.3.4/tests/test_fc_fix7_fuzz.py +122 -0
- agent_postmortem-0.3.4/tests/test_fc_fix7_redact.py +383 -0
- agent_postmortem-0.3.4/tests/test_fc_fix7_sinks.py +373 -0
- agent_postmortem-0.3.4/tests/test_fc_fix7_title.py +329 -0
- agent_postmortem-0.3.4/tests/test_fc_fix8_e2e.py +64 -0
- agent_postmortem-0.3.4/tests/test_fc_fix8_fuzz.py +150 -0
- agent_postmortem-0.3.4/tests/test_fc_fix8_redact.py +412 -0
- agent_postmortem-0.3.4/tests/test_fc_fix8_sinks.py +381 -0
- agent_postmortem-0.3.4/tests/test_fc_fix9_e2e.py +68 -0
- agent_postmortem-0.3.4/tests/test_fc_fix9_fuzz.py +93 -0
- agent_postmortem-0.3.4/tests/test_fc_fix9_redact.py +530 -0
- agent_postmortem-0.3.4/tests/test_fc_fix9_sinks.py +47 -0
- agent_postmortem-0.3.4/tests/test_fc_help.py +119 -0
- agent_postmortem-0.3.4/tests/test_fc_scan.py +227 -0
- agent_postmortem-0.3.4/tests/test_fc_table.py +420 -0
- agent_postmortem-0.3.4/tests/test_fc_wording.py +608 -0
- agent_postmortem-0.3.4/tests/test_field_v03.py +1285 -0
- agent_postmortem-0.3.4/tests/test_field_v03_more.py +830 -0
- agent_postmortem-0.3.4/tests/test_filter_scope.py +386 -0
- agent_postmortem-0.3.4/tests/test_fixa_discovery.py +249 -0
- agent_postmortem-0.3.4/tests/test_fixa_enqueue.py +115 -0
- agent_postmortem-0.3.4/tests/test_fixa_reader.py +575 -0
- agent_postmortem-0.3.4/tests/test_g_a1_hooks.py +317 -0
- agent_postmortem-0.3.4/tests/test_g_a1_return.py +421 -0
- agent_postmortem-0.3.4/tests/test_g_b1.py +339 -0
- agent_postmortem-0.3.4/tests/test_g_c.py +557 -0
- agent_postmortem-0.3.4/tests/test_g_commit_sentences.py +208 -0
- agent_postmortem-0.3.4/tests/test_g_commits.py +92 -0
- agent_postmortem-0.3.4/tests/test_g_consumers.py +406 -0
- agent_postmortem-0.3.4/tests/test_g_corpus.py +192 -0
- agent_postmortem-0.3.4/tests/test_g_denied.py +255 -0
- agent_postmortem-0.3.4/tests/test_g_failed.py +77 -0
- agent_postmortem-0.3.4/tests/test_g_here.py +190 -0
- agent_postmortem-0.3.4/tests/test_g_hooks.py +163 -0
- agent_postmortem-0.3.4/tests/test_g_registry.py +59 -0
- agent_postmortem-0.3.4/tests/test_g_rescue.py +149 -0
- agent_postmortem-0.3.4/tests/test_g_return.py +762 -0
- agent_postmortem-0.3.4/tests/test_g_selfreport.py +249 -0
- agent_postmortem-0.3.4/tests/test_hooks_benchmark.py +273 -0
- agent_postmortem-0.3.4/tests/test_hooks_cli.py +1310 -0
- agent_postmortem-0.3.4/tests/test_journal_malformed_fields.py +121 -0
- agent_postmortem-0.3.4/tests/test_journal_state.py +187 -0
- agent_postmortem-0.3.4/tests/test_launch_docs.py +94 -0
- agent_postmortem-0.3.4/tests/test_model_allocation_guard.py +122 -0
- agent_postmortem-0.3.4/tests/test_n1_markers.py +563 -0
- agent_postmortem-0.3.4/tests/test_n1_parent_index.py +1050 -0
- agent_postmortem-0.3.4/tests/test_n2_lifecycle.py +1104 -0
- agent_postmortem-0.3.4/tests/test_n3b_apply.py +335 -0
- agent_postmortem-0.3.4/tests/test_n3b_canonical_ids.py +61 -0
- agent_postmortem-0.3.4/tests/test_n3b_context.py +71 -0
- agent_postmortem-0.3.4/tests/test_n3b_demo.py +183 -0
- agent_postmortem-0.3.4/tests/test_n3b_first_line.py +112 -0
- agent_postmortem-0.3.4/tests/test_n3b_fixa_dedupe.py +72 -0
- agent_postmortem-0.3.4/tests/test_n3b_fixa_demo.py +39 -0
- agent_postmortem-0.3.4/tests/test_n3b_fixa_local_path.py +63 -0
- agent_postmortem-0.3.4/tests/test_n3b_fixa_names.py +112 -0
- agent_postmortem-0.3.4/tests/test_n3b_fixa_paths_c4.py +95 -0
- agent_postmortem-0.3.4/tests/test_n3b_fixa_paths_c6.py +47 -0
- agent_postmortem-0.3.4/tests/test_n3b_fixa_paths_s10.py +23 -0
- agent_postmortem-0.3.4/tests/test_n3b_fixa_paths_s4.py +58 -0
- agent_postmortem-0.3.4/tests/test_n3b_fixa_titles.py +57 -0
- agent_postmortem-0.3.4/tests/test_n3b_fixb_hook_group.py +118 -0
- agent_postmortem-0.3.4/tests/test_n3b_fixb_noident_pointer.py +78 -0
- agent_postmortem-0.3.4/tests/test_n3b_fixb_repr_tokens.py +51 -0
- agent_postmortem-0.3.4/tests/test_n3b_fixb_rescue_c1.py +131 -0
- agent_postmortem-0.3.4/tests/test_n3b_fixb_run_ids.py +149 -0
- agent_postmortem-0.3.4/tests/test_n3b_fixb_traversal.py +114 -0
- agent_postmortem-0.3.4/tests/test_n3b_fixr2_ids.py +153 -0
- agent_postmortem-0.3.4/tests/test_n3b_fixr2_paths.py +134 -0
- agent_postmortem-0.3.4/tests/test_n3b_fixr2_raw_dupes.py +100 -0
- agent_postmortem-0.3.4/tests/test_n3b_fixr2_schema2_hostile.py +125 -0
- agent_postmortem-0.3.4/tests/test_n3b_flags.py +110 -0
- agent_postmortem-0.3.4/tests/test_n3b_handler_errors.py +200 -0
- agent_postmortem-0.3.4/tests/test_n3b_hooks.py +225 -0
- agent_postmortem-0.3.4/tests/test_n3b_local_path.py +143 -0
- agent_postmortem-0.3.4/tests/test_n3b_local_scrub.py +113 -0
- agent_postmortem-0.3.4/tests/test_n3b_parser_errors.py +226 -0
- agent_postmortem-0.3.4/tests/test_n3b_part2_slow_path.py +130 -0
- agent_postmortem-0.3.4/tests/test_n3b_part3_sinks.py +75 -0
- agent_postmortem-0.3.4/tests/test_n3b_pointers.py +171 -0
- agent_postmortem-0.3.4/tests/test_n3b_reader.py +175 -0
- agent_postmortem-0.3.4/tests/test_n3b_rescue.py +394 -0
- agent_postmortem-0.3.4/tests/test_n3b_residual_sinks.py +161 -0
- agent_postmortem-0.3.4/tests/test_n3b_rules_trend.py +182 -0
- agent_postmortem-0.3.4/tests/test_n3b_run_fallback.py +188 -0
- agent_postmortem-0.3.4/tests/test_n3b_run_local.py +201 -0
- agent_postmortem-0.3.4/tests/test_n3b_run_noncanonical_agent.py +102 -0
- agent_postmortem-0.3.4/tests/test_n3b_run_path_matrix.py +96 -0
- agent_postmortem-0.3.4/tests/test_n3b_run_share.py +150 -0
- agent_postmortem-0.3.4/tests/test_n3b_scan.py +193 -0
- agent_postmortem-0.3.4/tests/test_n3b_slow_path.py +102 -0
- agent_postmortem-0.3.4/tests/test_n3b_watch.py +270 -0
- agent_postmortem-0.3.4/tests/test_n4a_base_repo.py +161 -0
- agent_postmortem-0.3.4/tests/test_n4a_commit_grammar.py +621 -0
- agent_postmortem-0.3.4/tests/test_n4a_lexer.py +367 -0
- agent_postmortem-0.3.4/tests/test_n4a_measure.py +207 -0
- agent_postmortem-0.3.4/tests/test_n4a_readonly.py +237 -0
- agent_postmortem-0.3.4/tests/test_n4a_rows.py +275 -0
- agent_postmortem-0.3.4/tests/test_n4a_write_grammar.py +180 -0
- agent_postmortem-0.3.4/tests/test_n4b1_discovery.py +679 -0
- agent_postmortem-0.3.4/tests/test_n4b1_reader_facts.py +703 -0
- agent_postmortem-0.3.4/tests/test_n4b1_schema2.py +105 -0
- agent_postmortem-0.3.4/tests/test_n4b2_forms.py +238 -0
- agent_postmortem-0.3.4/tests/test_n4b2_measure.py +170 -0
- agent_postmortem-0.3.4/tests/test_n4b2_population.py +448 -0
- agent_postmortem-0.3.4/tests/test_n4b2_reasons.py +409 -0
- agent_postmortem-0.3.4/tests/test_n4b2_repo_groups.py +282 -0
- agent_postmortem-0.3.4/tests/test_n4b2_rows.py +482 -0
- agent_postmortem-0.3.4/tests/test_n4fixb_c3.py +69 -0
- agent_postmortem-0.3.4/tests/test_n4fixb_differential.py +318 -0
- agent_postmortem-0.3.4/tests/test_n4fixb_minor.py +100 -0
- agent_postmortem-0.3.4/tests/test_n4fixb_s3.py +135 -0
- agent_postmortem-0.3.4/tests/test_n4fixb_s4.py +106 -0
- agent_postmortem-0.3.4/tests/test_n4fixb_s5_s10.py +280 -0
- agent_postmortem-0.3.4/tests/test_n4fixc_a4.py +370 -0
- agent_postmortem-0.3.4/tests/test_n4fixd_a5.py +496 -0
- agent_postmortem-0.3.4/tests/test_n4fixe_a5.py +155 -0
- agent_postmortem-0.3.4/tests/test_n5_schema3_goldens.py +451 -0
- agent_postmortem-0.3.4/tests/test_n5a1_schema3.py +713 -0
- agent_postmortem-0.3.4/tests/test_n5a2_docs.py +54 -0
- agent_postmortem-0.3.4/tests/test_n5b_detectors.py +574 -0
- agent_postmortem-0.3.4/tests/test_n5b_inputs.py +344 -0
- agent_postmortem-0.3.4/tests/test_n5b_severity.py +328 -0
- agent_postmortem-0.3.4/tests/test_n5b_verdict.py +408 -0
- agent_postmortem-0.3.4/tests/test_n5c1_gaps.py +508 -0
- agent_postmortem-0.3.4/tests/test_n5c1_look.py +243 -0
- agent_postmortem-0.3.4/tests/test_n5c1_observation_export.py +240 -0
- agent_postmortem-0.3.4/tests/test_n5c1_observe.py +440 -0
- agent_postmortem-0.3.4/tests/test_n5c1_rescue.py +174 -0
- agent_postmortem-0.3.4/tests/test_n5c1_returned.py +235 -0
- agent_postmortem-0.3.4/tests/test_n5c1_work_at_risk.py +424 -0
- agent_postmortem-0.3.4/tests/test_n5c2_exit_codes.py +410 -0
- agent_postmortem-0.3.4/tests/test_n5c2_misc.py +344 -0
- agent_postmortem-0.3.4/tests/test_n5c2_status_repos.py +618 -0
- agent_postmortem-0.3.4/tests/test_n5fix1_misc.py +182 -0
- agent_postmortem-0.3.4/tests/test_n5fix1_plan.py +388 -0
- agent_postmortem-0.3.4/tests/test_n5fix1_returned.py +206 -0
- agent_postmortem-0.3.4/tests/test_n5fix1_severity.py +74 -0
- agent_postmortem-0.3.4/tests/test_n5fix1_status.py +228 -0
- agent_postmortem-0.3.4/tests/test_n6_alias_state.py +220 -0
- agent_postmortem-0.3.4/tests/test_n6_cwd.py +246 -0
- agent_postmortem-0.3.4/tests/test_n6_docs.py +45 -0
- agent_postmortem-0.3.4/tests/test_n6_fix1.py +220 -0
- agent_postmortem-0.3.4/tests/test_n6_here_run.py +147 -0
- agent_postmortem-0.3.4/tests/test_n6_here_scan.py +141 -0
- agent_postmortem-0.3.4/tests/test_n6_pins.py +126 -0
- agent_postmortem-0.3.4/tests/test_n6_resolve.py +239 -0
- agent_postmortem-0.3.4/tests/test_n6_roundtrip.py +139 -0
- agent_postmortem-0.3.4/tests/test_n6_stderr.py +177 -0
- agent_postmortem-0.3.4/tests/test_n7_detectors.py +75 -0
- agent_postmortem-0.3.4/tests/test_n8_fix1.py +471 -0
- agent_postmortem-0.3.4/tests/test_n8_fix2.py +63 -0
- agent_postmortem-0.3.4/tests/test_n8_k1_killed.py +67 -0
- agent_postmortem-0.3.4/tests/test_n8_k2_what_to_do.py +63 -0
- agent_postmortem-0.3.4/tests/test_n8_k3_precursor.py +238 -0
- agent_postmortem-0.3.4/tests/test_n8_k4_rescue.py +684 -0
- agent_postmortem-0.3.4/tests/test_n8_k5_watch.py +773 -0
- agent_postmortem-0.3.4/tests/test_n8_k6_rules.py +363 -0
- agent_postmortem-0.3.4/tests/test_n9_docs.py +246 -0
- agent_postmortem-0.3.4/tests/test_n9_release_gate.py +440 -0
- agent_postmortem-0.3.4/tests/test_no_lazy_fetch.py +63 -0
- agent_postmortem-0.3.4/tests/test_no_write_surface.py +296 -0
- agent_postmortem-0.3.4/tests/test_observe.py +947 -0
- agent_postmortem-0.3.4/tests/test_plugin.py +856 -0
- agent_postmortem-0.3.4/tests/test_privacy.py +453 -0
- agent_postmortem-0.3.4/tests/test_privacy_matrix.py +637 -0
- agent_postmortem-0.3.4/tests/test_r1_scan_risk_parity.py +184 -0
- agent_postmortem-0.3.4/tests/test_reader.py +1309 -0
- agent_postmortem-0.3.4/tests/test_reader_session.py +396 -0
- agent_postmortem-0.3.4/tests/test_readme.py +217 -0
- agent_postmortem-0.3.4/tests/test_redact.py +752 -0
- agent_postmortem-0.3.4/tests/test_rel_demo.py +69 -0
- agent_postmortem-0.3.4/tests/test_rel_scan_all.py +132 -0
- agent_postmortem-0.3.4/tests/test_rendered_privacy.py +623 -0
- agent_postmortem-0.3.4/tests/test_report_session.py +148 -0
- agent_postmortem-0.3.4/tests/test_report_v2.py +450 -0
- agent_postmortem-0.3.4/tests/test_rescue.py +1227 -0
- agent_postmortem-0.3.4/tests/test_rules.py +453 -0
- agent_postmortem-0.3.4/tests/test_rules_propose.py +269 -0
- agent_postmortem-0.3.4/tests/test_rules_review.py +349 -0
- agent_postmortem-0.3.4/tests/test_scan_triage.py +1044 -0
- agent_postmortem-0.3.4/tests/test_state.py +681 -0
- agent_postmortem-0.3.4/tests/test_tooling_agent_scope.py +113 -0
- agent_postmortem-0.3.4/tests/test_trend.py +336 -0
- agent_postmortem-0.3.4/tests/test_watch.py +1474 -0
- agent_postmortem-0.3.4/tests/test_wheel.py +128 -0
- agent_postmortem-0.3.4/tests/test_workflows.py +79 -0
- agent_postmortem-0.3.4/uv.lock +107 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "agent-postmortem",
|
|
3
|
+
"description": "The agent-postmortem plugin for Claude Code: it reads the Claude Code logs already on your machine and tells you which agent's 'done' you can't trust, and what to run next. Claude Code only.",
|
|
4
|
+
"owner": {
|
|
5
|
+
"name": "zeyusuntt"
|
|
6
|
+
},
|
|
7
|
+
"plugins": [
|
|
8
|
+
{
|
|
9
|
+
"name": "agent-postmortem",
|
|
10
|
+
"source": "./plugin",
|
|
11
|
+
"description": "Reads the Claude Code logs already on your machine and tells you which agent's 'done' you can't trust, and what to run next."
|
|
12
|
+
}
|
|
13
|
+
]
|
|
14
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
name: Crash or error
|
|
2
|
+
description: agent-postmortem crashed, printed an error, or failed to install. For a wrong verdict or confusing output, use those templates.
|
|
3
|
+
title: "[bug]: "
|
|
4
|
+
labels: ["bug"]
|
|
5
|
+
body:
|
|
6
|
+
- type: markdown
|
|
7
|
+
attributes:
|
|
8
|
+
value: |
|
|
9
|
+
Thanks for filing a bug. The most useful thing you can attach is the
|
|
10
|
+
redacted bug report for the run that triggered it:
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
agent-postmortem run <id> --bug-report
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Redacted: paths, ids, emails, account names, agent names. Evidence
|
|
17
|
+
lines are pointers and marker codes only (no transcript text) at
|
|
18
|
+
the default level. Do not add `--local`, `--raw`, or `--evidence`
|
|
19
|
+
for a report you post here. Read the whole output before posting
|
|
20
|
+
it anyway.
|
|
21
|
+
- type: textarea
|
|
22
|
+
attributes:
|
|
23
|
+
label: What happened
|
|
24
|
+
description: What you expected instead, and what you saw.
|
|
25
|
+
validations:
|
|
26
|
+
required: true
|
|
27
|
+
- type: textarea
|
|
28
|
+
attributes:
|
|
29
|
+
label: Bug report output
|
|
30
|
+
description: |
|
|
31
|
+
The output of `agent-postmortem run <id> --bug-report` for the run
|
|
32
|
+
that shows the problem, at the default level. Paths, ids, emails,
|
|
33
|
+
account names, and agent names are already redacted, and evidence
|
|
34
|
+
lines carry no transcript text. Read it before pasting.
|
|
35
|
+
render: markdown
|
|
36
|
+
validations:
|
|
37
|
+
required: false
|
|
38
|
+
- type: input
|
|
39
|
+
attributes:
|
|
40
|
+
label: agent-postmortem version
|
|
41
|
+
description: Output of `agent-postmortem --version`.
|
|
42
|
+
validations:
|
|
43
|
+
required: true
|
|
44
|
+
- type: input
|
|
45
|
+
attributes:
|
|
46
|
+
label: Claude Code version
|
|
47
|
+
description: Output of `claude --version`.
|
|
48
|
+
validations:
|
|
49
|
+
required: true
|
|
50
|
+
- type: input
|
|
51
|
+
attributes:
|
|
52
|
+
label: Python version and OS
|
|
53
|
+
validations:
|
|
54
|
+
required: true
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
name: Confusing output
|
|
2
|
+
description: A line or section you could not understand or act on, even though it may be correct.
|
|
3
|
+
title: "[output]: "
|
|
4
|
+
labels: ["confusing-output"]
|
|
5
|
+
body:
|
|
6
|
+
- type: markdown
|
|
7
|
+
attributes:
|
|
8
|
+
value: |
|
|
9
|
+
Output that is right but unclear is still a bug. Copy the confusing part
|
|
10
|
+
from the default-level output; if the whole run helps, attach:
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
agent-postmortem run <run-id> --bug-report
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
It is redacted by default and carries no transcript text. Read it before
|
|
17
|
+
posting. Do not add `--local`, `--raw` or `--evidence`, and never paste a
|
|
18
|
+
raw transcript here.
|
|
19
|
+
- type: textarea
|
|
20
|
+
attributes:
|
|
21
|
+
label: The confusing line or section
|
|
22
|
+
description: Copied from the default-level output of `run`, `scan`, `rescue`, `watch` or a hook message.
|
|
23
|
+
validations:
|
|
24
|
+
required: true
|
|
25
|
+
- type: textarea
|
|
26
|
+
attributes:
|
|
27
|
+
label: What you expected it to tell you
|
|
28
|
+
description: What you were trying to decide, and what would have made the next step clear.
|
|
29
|
+
validations:
|
|
30
|
+
required: true
|
|
31
|
+
- type: textarea
|
|
32
|
+
attributes:
|
|
33
|
+
label: Bug report output
|
|
34
|
+
description: The output of `agent-postmortem run <run-id> --bug-report`, at the default level.
|
|
35
|
+
render: markdown
|
|
36
|
+
validations:
|
|
37
|
+
required: false
|
|
38
|
+
- type: input
|
|
39
|
+
attributes:
|
|
40
|
+
label: Claude Code version
|
|
41
|
+
description: Output of `claude --version`.
|
|
42
|
+
validations:
|
|
43
|
+
required: true
|
|
44
|
+
- type: input
|
|
45
|
+
attributes:
|
|
46
|
+
label: agent-postmortem version
|
|
47
|
+
description: Output of `agent-postmortem --version`.
|
|
48
|
+
validations:
|
|
49
|
+
required: true
|
|
50
|
+
- type: checkboxes
|
|
51
|
+
attributes:
|
|
52
|
+
label: Privacy
|
|
53
|
+
options:
|
|
54
|
+
- label: I pasted only default-level output (no `--local`, `--raw` or `--evidence`) and no transcript text.
|
|
55
|
+
required: true
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
name: Detector request
|
|
2
|
+
description: Propose a new failure pattern for agent-postmortem to detect.
|
|
3
|
+
title: "[detector]: "
|
|
4
|
+
labels: ["detector-request"]
|
|
5
|
+
body:
|
|
6
|
+
- type: markdown
|
|
7
|
+
attributes:
|
|
8
|
+
value: |
|
|
9
|
+
A good detector request pins down an observable pattern in the run
|
|
10
|
+
data (journal, meta, or transcript), not just a symptom you noticed
|
|
11
|
+
once. See `docs/DESIGN.md` section 4.3 for what an existing detector
|
|
12
|
+
looks like and section 6 for the fixture format.
|
|
13
|
+
- type: textarea
|
|
14
|
+
attributes:
|
|
15
|
+
label: The failure pattern
|
|
16
|
+
description: What silently went wrong, and how you'd recognize it from the run data alone.
|
|
17
|
+
validations:
|
|
18
|
+
required: true
|
|
19
|
+
- type: textarea
|
|
20
|
+
attributes:
|
|
21
|
+
label: Evidence
|
|
22
|
+
description: |
|
|
23
|
+
The output of `agent-postmortem run <id> --bug-report` for a run
|
|
24
|
+
that shows the pattern, at the default level (redacted, no
|
|
25
|
+
transcript text), plus the shape of the evidence in your own words,
|
|
26
|
+
for example "the last user entry is the interrupt sentence and the
|
|
27
|
+
journal has a second started event for the same key". Never paste a
|
|
28
|
+
raw transcript, a `journal.jsonl` line, a real session id or an
|
|
29
|
+
absolute path.
|
|
30
|
+
render: markdown
|
|
31
|
+
validations:
|
|
32
|
+
required: false
|
|
33
|
+
- type: textarea
|
|
34
|
+
attributes:
|
|
35
|
+
label: What rule would have prevented it
|
|
36
|
+
description: If this became a suggested rule (docs/DESIGN.md section 9), what should it say?
|
|
37
|
+
validations:
|
|
38
|
+
required: false
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
name: My run shape isn't covered
|
|
2
|
+
description: You run Claude Code in a way the tool does not read yet (claude -p, background subagents, claude --bg, agent teams, SendMessage, or another shape).
|
|
3
|
+
title: "[run shape]: "
|
|
4
|
+
labels: ["run-shape"]
|
|
5
|
+
body:
|
|
6
|
+
- type: markdown
|
|
7
|
+
attributes:
|
|
8
|
+
value: |
|
|
9
|
+
The README's "What it covers" table lists the shapes the tool handles
|
|
10
|
+
today. Support for a new shape is built from real runs of that shape,
|
|
11
|
+
so a report from you is the most useful thing there is. Attach the
|
|
12
|
+
default-level bug report for one such run:
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
agent-postmortem run <run-id> --bug-report
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
It is redacted by default and carries no transcript text. Read it before
|
|
19
|
+
posting. Do not add `--local`, `--raw` or `--evidence`, and never paste a
|
|
20
|
+
raw transcript here. If more detail is needed, we will ask for counts or
|
|
21
|
+
a synthetic reproduction, never for your transcripts.
|
|
22
|
+
- type: dropdown
|
|
23
|
+
attributes:
|
|
24
|
+
label: Run shape
|
|
25
|
+
options:
|
|
26
|
+
- claude -p (headless)
|
|
27
|
+
- Background subagents (run_in_background)
|
|
28
|
+
- claude --bg session
|
|
29
|
+
- Agent team
|
|
30
|
+
- Cross-session messages (SendMessage)
|
|
31
|
+
- Other
|
|
32
|
+
validations:
|
|
33
|
+
required: true
|
|
34
|
+
- type: textarea
|
|
35
|
+
attributes:
|
|
36
|
+
label: What went wrong in that run
|
|
37
|
+
description: What you saw, for example an agent that said "done" but whose work was missing, a killed agent, or a job that never finished, and how you found out.
|
|
38
|
+
validations:
|
|
39
|
+
required: true
|
|
40
|
+
- type: textarea
|
|
41
|
+
attributes:
|
|
42
|
+
label: How the run was launched
|
|
43
|
+
description: The command or setup in general terms (flags, hooks, tools). No prompts and no transcript text.
|
|
44
|
+
validations:
|
|
45
|
+
required: true
|
|
46
|
+
- type: textarea
|
|
47
|
+
attributes:
|
|
48
|
+
label: Bug report output
|
|
49
|
+
description: The output of `agent-postmortem run <run-id> --bug-report`, at the default level.
|
|
50
|
+
render: markdown
|
|
51
|
+
validations:
|
|
52
|
+
required: false
|
|
53
|
+
- type: input
|
|
54
|
+
attributes:
|
|
55
|
+
label: Claude Code version
|
|
56
|
+
description: Output of `claude --version`.
|
|
57
|
+
validations:
|
|
58
|
+
required: true
|
|
59
|
+
- type: input
|
|
60
|
+
attributes:
|
|
61
|
+
label: agent-postmortem version
|
|
62
|
+
description: Output of `agent-postmortem --version`.
|
|
63
|
+
validations:
|
|
64
|
+
required: true
|
|
65
|
+
- type: checkboxes
|
|
66
|
+
attributes:
|
|
67
|
+
label: Privacy
|
|
68
|
+
options:
|
|
69
|
+
- label: I pasted only default-level output (no `--local`, `--raw` or `--evidence`) and no transcript text.
|
|
70
|
+
required: true
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
name: Wrong verdict
|
|
2
|
+
description: agent-postmortem said something about a run that the run does not show (a kill, a retry, a failure, a "done", or a work-at-risk line).
|
|
3
|
+
title: "[verdict]: "
|
|
4
|
+
labels: ["wrong-verdict"]
|
|
5
|
+
body:
|
|
6
|
+
- type: markdown
|
|
7
|
+
attributes:
|
|
8
|
+
value: |
|
|
9
|
+
Thanks for checking the tool against what really happened. Attach the
|
|
10
|
+
default-level bug report for the run:
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
agent-postmortem run <run-id> --bug-report
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
It is redacted by default: paths, ids, emails, account names and agent
|
|
17
|
+
names are replaced, and evidence is pointers and marker codes only, with
|
|
18
|
+
no transcript text. Read it before posting. Do not add `--local`,
|
|
19
|
+
`--raw` or `--evidence`, and never paste a raw transcript or a
|
|
20
|
+
`journal.jsonl` line here.
|
|
21
|
+
- type: textarea
|
|
22
|
+
attributes:
|
|
23
|
+
label: What the tool said
|
|
24
|
+
description: The verdict, story or line you think is wrong, copied from the default-level output.
|
|
25
|
+
validations:
|
|
26
|
+
required: true
|
|
27
|
+
- type: textarea
|
|
28
|
+
attributes:
|
|
29
|
+
label: What actually happened
|
|
30
|
+
description: What really happened in that run, and how you know (in your own words, not transcript text).
|
|
31
|
+
validations:
|
|
32
|
+
required: true
|
|
33
|
+
- type: textarea
|
|
34
|
+
attributes:
|
|
35
|
+
label: Bug report output
|
|
36
|
+
description: The output of `agent-postmortem run <run-id> --bug-report`, at the default level.
|
|
37
|
+
render: markdown
|
|
38
|
+
validations:
|
|
39
|
+
required: false
|
|
40
|
+
- type: dropdown
|
|
41
|
+
attributes:
|
|
42
|
+
label: Run shape
|
|
43
|
+
options:
|
|
44
|
+
- Workflow tool run
|
|
45
|
+
- Session with subagents
|
|
46
|
+
- claude -p (headless)
|
|
47
|
+
- Background subagents (run_in_background)
|
|
48
|
+
- claude --bg session
|
|
49
|
+
- Agent team
|
|
50
|
+
- Other
|
|
51
|
+
validations:
|
|
52
|
+
required: true
|
|
53
|
+
- type: input
|
|
54
|
+
attributes:
|
|
55
|
+
label: Claude Code version
|
|
56
|
+
description: Output of `claude --version`.
|
|
57
|
+
validations:
|
|
58
|
+
required: true
|
|
59
|
+
- type: input
|
|
60
|
+
attributes:
|
|
61
|
+
label: agent-postmortem version
|
|
62
|
+
description: Output of `agent-postmortem --version`.
|
|
63
|
+
validations:
|
|
64
|
+
required: true
|
|
65
|
+
- type: checkboxes
|
|
66
|
+
attributes:
|
|
67
|
+
label: Privacy
|
|
68
|
+
options:
|
|
69
|
+
- label: I pasted only default-level output (no `--local`, `--raw` or `--evidence`) and no transcript text.
|
|
70
|
+
required: true
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
## What this changes and why
|
|
2
|
+
|
|
3
|
+
<!-- One or two sentences. Verdict first: what did not work before, what does now. -->
|
|
4
|
+
|
|
5
|
+
## Checklist
|
|
6
|
+
|
|
7
|
+
- [ ] Tests were written first (a failing test, then the code that makes it pass), and `uv run pytest` is green.
|
|
8
|
+
- [ ] `uv run ruff check .` is clean.
|
|
9
|
+
- [ ] Privacy check passes: `uv run pytest tests/test_privacy.py` (and, if this touches git history or ref names, `scripts/check-privacy.sh`).
|
|
10
|
+
- [ ] `docs/DESIGN.md` was updated in this same PR if the code departs from what it currently says.
|
|
11
|
+
- [ ] Any fixture added or changed under `tests/fixtures/` or `src/agent_postmortem/demo/` is fully synthetic (fake session id, fake paths, no real prompt text).
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
pull_request:
|
|
6
|
+
|
|
7
|
+
permissions:
|
|
8
|
+
contents: read
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
test:
|
|
12
|
+
strategy:
|
|
13
|
+
fail-fast: false
|
|
14
|
+
matrix:
|
|
15
|
+
os: [ubuntu-latest, macos-latest]
|
|
16
|
+
python-version: ["3.11", "3.12", "3.13"]
|
|
17
|
+
runs-on: ${{ matrix.os }}
|
|
18
|
+
steps:
|
|
19
|
+
- uses: actions/checkout@v4
|
|
20
|
+
|
|
21
|
+
- name: Install uv
|
|
22
|
+
uses: astral-sh/setup-uv@v3
|
|
23
|
+
with:
|
|
24
|
+
python-version: ${{ matrix.python-version }}
|
|
25
|
+
|
|
26
|
+
- name: Install dependencies
|
|
27
|
+
run: uv sync --extra dev
|
|
28
|
+
|
|
29
|
+
- name: Lint
|
|
30
|
+
run: uv run ruff check .
|
|
31
|
+
|
|
32
|
+
- name: Test
|
|
33
|
+
run: uv run pytest
|
|
34
|
+
|
|
35
|
+
- name: Build
|
|
36
|
+
run: uv build
|
|
37
|
+
|
|
38
|
+
- name: Privacy check (tree and built artifacts)
|
|
39
|
+
run: scripts/check-privacy.sh --tree --artifacts dist/
|
|
40
|
+
|
|
41
|
+
- name: Validate Claude Code plugin and marketplace manifests
|
|
42
|
+
run: |
|
|
43
|
+
if command -v claude >/dev/null 2>&1; then
|
|
44
|
+
claude plugin validate --strict ./plugin
|
|
45
|
+
claude plugin validate --strict .
|
|
46
|
+
else
|
|
47
|
+
echo "claude CLI not present on this runner; skipping plugin validation."
|
|
48
|
+
fi
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "v*"
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
build:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v4
|
|
16
|
+
|
|
17
|
+
- name: Install uv
|
|
18
|
+
uses: astral-sh/setup-uv@v3
|
|
19
|
+
with:
|
|
20
|
+
python-version: "3.13"
|
|
21
|
+
|
|
22
|
+
- name: Install dependencies
|
|
23
|
+
run: uv sync --extra dev
|
|
24
|
+
|
|
25
|
+
- name: Test
|
|
26
|
+
run: uv run pytest
|
|
27
|
+
|
|
28
|
+
- name: Build
|
|
29
|
+
run: uv build
|
|
30
|
+
|
|
31
|
+
- name: Privacy check (built artifacts)
|
|
32
|
+
run: scripts/check-privacy.sh --tree --artifacts dist/
|
|
33
|
+
|
|
34
|
+
- name: Upload dist
|
|
35
|
+
uses: actions/upload-artifact@v4
|
|
36
|
+
with:
|
|
37
|
+
name: dist
|
|
38
|
+
path: dist/
|
|
39
|
+
|
|
40
|
+
github-release:
|
|
41
|
+
needs: build
|
|
42
|
+
runs-on: ubuntu-latest
|
|
43
|
+
permissions:
|
|
44
|
+
contents: write
|
|
45
|
+
steps:
|
|
46
|
+
- uses: actions/checkout@v4
|
|
47
|
+
|
|
48
|
+
- name: Download dist
|
|
49
|
+
uses: actions/download-artifact@v4
|
|
50
|
+
with:
|
|
51
|
+
name: dist
|
|
52
|
+
path: dist/
|
|
53
|
+
|
|
54
|
+
- name: Release notes from CHANGELOG
|
|
55
|
+
run: |
|
|
56
|
+
version="${GITHUB_REF_NAME#v}"
|
|
57
|
+
awk -v v="$version" 'index($0, "## [" v "]") == 1 {f = 1; next} /^## \[/ {if (f) exit} f' CHANGELOG.md > notes.md
|
|
58
|
+
test -s notes.md
|
|
59
|
+
|
|
60
|
+
- name: Create the GitHub release
|
|
61
|
+
env:
|
|
62
|
+
GH_TOKEN: ${{ github.token }}
|
|
63
|
+
run: gh release create "$GITHUB_REF_NAME" dist/* --verify-tag --title "$GITHUB_REF_NAME" --notes-file notes.md
|
|
64
|
+
|
|
65
|
+
publish:
|
|
66
|
+
# PyPI publishing waits for the trusted publisher (CONTRIBUTING.md). Until the repository
|
|
67
|
+
# variable PUBLISH_PYPI is set to 'true', a tag builds and makes the GitHub release, and
|
|
68
|
+
# this job is skipped rather than failed.
|
|
69
|
+
needs: build
|
|
70
|
+
if: vars.PUBLISH_PYPI == 'true'
|
|
71
|
+
runs-on: ubuntu-latest
|
|
72
|
+
environment: pypi
|
|
73
|
+
permissions:
|
|
74
|
+
id-token: write
|
|
75
|
+
steps:
|
|
76
|
+
- name: Download dist
|
|
77
|
+
uses: actions/download-artifact@v4
|
|
78
|
+
with:
|
|
79
|
+
name: dist
|
|
80
|
+
path: dist/
|
|
81
|
+
|
|
82
|
+
- name: Publish to PyPI
|
|
83
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|