agent-postmortem 0.3.4__tar.gz → 0.3.5__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.
Files changed (546) hide show
  1. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/CHANGELOG.md +17 -0
  2. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/CONTRIBUTING.md +14 -16
  3. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/PKG-INFO +11 -9
  4. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/README.md +8 -6
  5. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/docs/DESIGN.md +12 -9
  6. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/plugin/.claude-plugin/plugin.json +1 -1
  7. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/plugin/README.md +4 -3
  8. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/plugin/hooks/run.sh +16 -8
  9. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/plugin/skills/postmortem/SKILL.md +1 -1
  10. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/pyproject.toml +3 -3
  11. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/__init__.py +1 -1
  12. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_launch_docs.py +15 -10
  13. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n9_docs.py +3 -3
  14. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_plugin.py +42 -11
  15. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/uv.lock +1 -1
  16. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/.claude-plugin/marketplace.json +0 -0
  17. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  18. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/.github/ISSUE_TEMPLATE/confusing_output.yml +0 -0
  19. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/.github/ISSUE_TEMPLATE/detector_request.yml +0 -0
  20. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/.github/ISSUE_TEMPLATE/run_shape_not_covered.yml +0 -0
  21. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/.github/ISSUE_TEMPLATE/wrong_verdict.yml +0 -0
  22. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  23. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/.github/workflows/ci.yml +0 -0
  24. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/.github/workflows/release.yml +0 -0
  25. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/.gitignore +0 -0
  26. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/CLAUDE.md +0 -0
  27. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/LICENSE +0 -0
  28. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/plugin/hooks/hooks.json +0 -0
  29. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/plugin/skills/rescue/SKILL.md +0 -0
  30. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/scripts/check-privacy.sh +0 -0
  31. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/scripts/export-public.sh +0 -0
  32. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/argerrors.py +0 -0
  33. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/claims.py +0 -0
  34. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/cli.py +0 -0
  35. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/commands.py +0 -0
  36. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/config.py +0 -0
  37. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/demo/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-d30/agent-ac200000000000001.jsonl +0 -0
  38. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/demo/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-d30/agent-ac200000000000001.meta.json +0 -0
  39. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/demo/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-d30/agent-ac200000000000002.jsonl +0 -0
  40. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/demo/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-d30/agent-ac200000000000002.meta.json +0 -0
  41. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/demo/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-d30/agent-ac200000000000003.jsonl +0 -0
  42. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/demo/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-d30/agent-ac200000000000003.meta.json +0 -0
  43. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/demo/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-d30/agent-ac200000000000004.jsonl +0 -0
  44. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/demo/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-d30/agent-ac200000000000004.meta.json +0 -0
  45. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/demo/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-d30/journal.jsonl +0 -0
  46. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/demo/-home-user-project/00000000-0000-4000-8000-000000000000.jsonl +0 -0
  47. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/detectors/__init__.py +0 -0
  48. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/detectors/attempt_failed.py +0 -0
  49. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/detectors/base.py +0 -0
  50. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/detectors/bash_backgrounded.py +0 -0
  51. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/detectors/bash_timeout.py +0 -0
  52. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/detectors/claim_contradiction.py +0 -0
  53. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/detectors/classifier_unavailable.py +0 -0
  54. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/detectors/codex_unavailable.py +0 -0
  55. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/detectors/codex_write_denied.py +0 -0
  56. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/detectors/git_cwd_mismatch.py +0 -0
  57. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/detectors/mislabeled_kill.py +0 -0
  58. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/detectors/missing_artifact.py +0 -0
  59. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/detectors/permission_denied.py +0 -0
  60. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/detectors/silent_retry.py +0 -0
  61. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/detectors/structured_output_failure.py +0 -0
  62. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/detectors/tool_json_error.py +0 -0
  63. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/detectors/wasted_time.py +0 -0
  64. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/detectors/workflow_failed.py +0 -0
  65. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/disclosure.py +0 -0
  66. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/hooks/model_allocation_guard.mjs +0 -0
  67. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/hooks_cli.py +0 -0
  68. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/ledger.py +0 -0
  69. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/markers.py +0 -0
  70. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/models.py +0 -0
  71. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/observe.py +0 -0
  72. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/reader.py +0 -0
  73. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/redact.py +0 -0
  74. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/report.py +0 -0
  75. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/rescue.py +0 -0
  76. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/returns.py +0 -0
  77. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/rules.py +0 -0
  78. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/severity.py +0 -0
  79. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/state.py +0 -0
  80. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/trend.py +0 -0
  81. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/src/agent_postmortem/watch.py +0 -0
  82. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/conftest.py +0 -0
  83. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/README.md +0 -0
  84. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/demo__share.txt +0 -0
  85. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/rescue_plan__local.txt +0 -0
  86. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/rescue_plan__raw.txt +0 -0
  87. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/rescue_plan__share.txt +0 -0
  88. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/rescue_status__local.txt +0 -0
  89. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/rescue_status__raw.txt +0 -0
  90. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/rescue_status__share.txt +0 -0
  91. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/rules__local.txt +0 -0
  92. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/rules__raw.txt +0 -0
  93. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/rules__share.txt +0 -0
  94. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/rules_all__local.txt +0 -0
  95. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/rules_all__raw.txt +0 -0
  96. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/rules_all__share.txt +0 -0
  97. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/rules_propose__local.txt +0 -0
  98. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/rules_propose__raw.txt +0 -0
  99. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/rules_propose__share.txt +0 -0
  100. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/rules_review__local.txt +0 -0
  101. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/rules_review__raw.txt +0 -0
  102. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/rules_review__share.txt +0 -0
  103. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/rules_show__local.txt +0 -0
  104. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/rules_show__raw.txt +0 -0
  105. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/rules_show__share.txt +0 -0
  106. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/run__local.txt +0 -0
  107. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/run__raw.txt +0 -0
  108. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/run__share.txt +0 -0
  109. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/scan__local.txt +0 -0
  110. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/scan__raw.txt +0 -0
  111. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/scan__share.txt +0 -0
  112. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/scan_all__local.txt +0 -0
  113. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/scan_all__raw.txt +0 -0
  114. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/scan_all__share.txt +0 -0
  115. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/trend__local.txt +0 -0
  116. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/trend__raw.txt +0 -0
  117. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/golden/schema3/trend__share.txt +0 -0
  118. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000001.jsonl +0 -0
  119. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000001.meta.json +0 -0
  120. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000002.jsonl +0 -0
  121. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000002.meta.json +0 -0
  122. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000003.jsonl +0 -0
  123. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000003.meta.json +0 -0
  124. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000004.jsonl +0 -0
  125. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000004.meta.json +0 -0
  126. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000005.jsonl +0 -0
  127. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000005.meta.json +0 -0
  128. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000006.jsonl +0 -0
  129. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000006.meta.json +0 -0
  130. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000008.jsonl +0 -0
  131. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000008.meta.json +0 -0
  132. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000009.jsonl +0 -0
  133. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000009.meta.json +0 -0
  134. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000010.jsonl +0 -0
  135. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000010.meta.json +0 -0
  136. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000011.jsonl +0 -0
  137. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/agent-af200000000000011.meta.json +0 -0
  138. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_facts/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af0/journal.jsonl +0 -0
  139. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_failed_causes/agent-af100000000000001.jsonl +0 -0
  140. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_failed_causes/agent-af100000000000001.meta.json +0 -0
  141. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_failed_causes/agent-af100000000000002.jsonl +0 -0
  142. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_failed_causes/agent-af100000000000002.meta.json +0 -0
  143. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_failed_causes/agent-af100000000000003.jsonl +0 -0
  144. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_failed_causes/agent-af100000000000003.meta.json +0 -0
  145. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_failed_causes/agent-af100000000000004.jsonl +0 -0
  146. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_failed_causes/agent-af100000000000004.meta.json +0 -0
  147. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_failed_causes/agent-af100000000000005.jsonl +0 -0
  148. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_failed_causes/agent-af100000000000005.meta.json +0 -0
  149. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_failed_causes/agent-af100000000000006.jsonl +0 -0
  150. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_failed_causes/agent-af100000000000006.meta.json +0 -0
  151. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_failed_causes/agent-af100000000000007.jsonl +0 -0
  152. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_failed_causes/agent-af100000000000007.meta.json +0 -0
  153. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_failed_causes/agent-af1000000000000a1.jsonl +0 -0
  154. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_failed_causes/agent-af1000000000000a1.meta.json +0 -0
  155. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_failed_causes/agent-af1000000000000a2.jsonl +0 -0
  156. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_failed_causes/agent-af1000000000000a2.meta.json +0 -0
  157. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_failed_causes/agent-af1000000000000a3.jsonl +0 -0
  158. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_failed_causes/agent-af1000000000000a3.meta.json +0 -0
  159. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_failed_causes/agent-af1000000000000a4.jsonl +0 -0
  160. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_failed_causes/agent-af1000000000000a4.meta.json +0 -0
  161. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_failed_causes/journal.jsonl +0 -0
  162. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_failed_retry_tail/agent-afa10000000000001.jsonl +0 -0
  163. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_failed_retry_tail/agent-afa10000000000001.meta.json +0 -0
  164. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_failed_retry_tail/agent-afa10000000000002.jsonl +0 -0
  165. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_failed_retry_tail/agent-afa10000000000002.meta.json +0 -0
  166. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_failed_retry_tail/agent-afb10000000000001.jsonl +0 -0
  167. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_failed_retry_tail/agent-afb10000000000001.meta.json +0 -0
  168. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/attempt_failed_retry_tail/journal.jsonl +0 -0
  169. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/bash_backgrounded_timeout/agent-ac300000000000001.jsonl +0 -0
  170. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/bash_backgrounded_timeout/agent-ac300000000000001.meta.json +0 -0
  171. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/bash_backgrounded_timeout/journal.jsonl +0 -0
  172. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/claim_contradiction/journal.jsonl +0 -0
  173. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/clean_run/agent-ac100000000000001.jsonl +0 -0
  174. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/clean_run/agent-ac100000000000001.meta.json +0 -0
  175. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/clean_run/agent-ac100000000000002.jsonl +0 -0
  176. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/clean_run/agent-ac100000000000002.meta.json +0 -0
  177. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/clean_run/journal.jsonl +0 -0
  178. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/codex_unavailable/agent-ae100000000000001.jsonl +0 -0
  179. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/codex_unavailable/agent-ae100000000000001.meta.json +0 -0
  180. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/codex_unavailable/agent-ae100000000000002.jsonl +0 -0
  181. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/codex_unavailable/agent-ae100000000000002.meta.json +0 -0
  182. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/codex_unavailable/agent-ae100000000000003.jsonl +0 -0
  183. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/codex_unavailable/agent-ae100000000000003.meta.json +0 -0
  184. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/codex_unavailable/agent-ae100000000000004.jsonl +0 -0
  185. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/codex_unavailable/agent-ae100000000000004.meta.json +0 -0
  186. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/codex_unavailable/journal.jsonl +0 -0
  187. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/codex_write_denied/agent-ac500000000000001.jsonl +0 -0
  188. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/codex_write_denied/agent-ac500000000000001.meta.json +0 -0
  189. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/codex_write_denied/agent-ac500000000000002.jsonl +0 -0
  190. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/codex_write_denied/agent-ac500000000000002.meta.json +0 -0
  191. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/codex_write_denied/agent-ac500000000000003.jsonl +0 -0
  192. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/codex_write_denied/agent-ac500000000000003.meta.json +0 -0
  193. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/codex_write_denied/journal.jsonl +0 -0
  194. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/evidence_noise/agent-acf00000000000001.jsonl +0 -0
  195. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/evidence_noise/agent-acf00000000000001.meta.json +0 -0
  196. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/evidence_noise/journal.jsonl +0 -0
  197. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/hook_session/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-ae300000000000001.jsonl +0 -0
  198. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/hook_session/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-ae300000000000001.meta.json +0 -0
  199. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/hook_session/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-710/agent-ae100000000000001.jsonl +0 -0
  200. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/hook_session/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-710/agent-ae100000000000001.meta.json +0 -0
  201. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/hook_session/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-710/agent-ae100000000000002.jsonl +0 -0
  202. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/hook_session/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-710/agent-ae100000000000002.meta.json +0 -0
  203. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/hook_session/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-710/journal.jsonl +0 -0
  204. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/hook_session/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-720/agent-ae200000000000001.jsonl +0 -0
  205. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/hook_session/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-720/agent-ae200000000000001.meta.json +0 -0
  206. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/hook_session/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-720/journal.jsonl +0 -0
  207. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/hook_session/-home-user-project/00000000-0000-4000-8000-000000000000.jsonl +0 -0
  208. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/incomplete_journal/agent-ad000000000000001.jsonl +0 -0
  209. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/incomplete_journal/agent-ad000000000000001.meta.json +0 -0
  210. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/incomplete_journal/journal.jsonl +0 -0
  211. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_malformed_fields/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af1/agent-aee00000000000001.jsonl +0 -0
  212. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_malformed_fields/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af1/agent-aee00000000000001.meta.json +0 -0
  213. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_malformed_fields/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af1/agent-aee00000000000003.jsonl +0 -0
  214. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_malformed_fields/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af1/agent-aee00000000000003.meta.json +0 -0
  215. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_malformed_fields/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af1/agent-aee00000000000004.jsonl +0 -0
  216. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_malformed_fields/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af1/agent-aee00000000000004.meta.json +0 -0
  217. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_malformed_fields/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-af1/journal.jsonl +0 -0
  218. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_malformed_fields/-home-user-project/00000000-0000-4000-8000-000000000000.jsonl +0 -0
  219. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_state_orphan_failed/journal.jsonl +0 -0
  220. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_state_resolved/agent-ad200000000000001.jsonl +0 -0
  221. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_state_resolved/agent-ad200000000000001.meta.json +0 -0
  222. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_state_resolved/agent-ad300000000000001.jsonl +0 -0
  223. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_state_resolved/agent-ad300000000000001.meta.json +0 -0
  224. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_state_resolved/agent-ad400000000000001.jsonl +0 -0
  225. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_state_resolved/agent-ad400000000000001.meta.json +0 -0
  226. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_state_resolved/agent-ad400000000000002.jsonl +0 -0
  227. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_state_resolved/agent-ad400000000000002.meta.json +0 -0
  228. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_state_resolved/agent-ad500000000000001.jsonl +0 -0
  229. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_state_resolved/agent-ad500000000000001.meta.json +0 -0
  230. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_state_resolved/agent-ad500000000000002.jsonl +0 -0
  231. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_state_resolved/agent-ad500000000000002.meta.json +0 -0
  232. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_state_resolved/agent-ad600000000000001.jsonl +0 -0
  233. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_state_resolved/agent-ad600000000000001.meta.json +0 -0
  234. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_state_resolved/agent-ad600000000000002.jsonl +0 -0
  235. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_state_resolved/agent-ad600000000000002.meta.json +0 -0
  236. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_state_resolved/agent-ad700000000000001.jsonl +0 -0
  237. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_state_resolved/agent-ad700000000000001.meta.json +0 -0
  238. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_state_resolved/agent-ad800000000000001.jsonl +0 -0
  239. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_state_resolved/agent-ad800000000000001.meta.json +0 -0
  240. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_state_resolved/journal.jsonl +0 -0
  241. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_state_unresolved/agent-ad900000000000001.jsonl +0 -0
  242. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_state_unresolved/agent-ad900000000000001.meta.json +0 -0
  243. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/journal_state_unresolved/journal.jsonl +0 -0
  244. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/missing_artifact/agent-ac600000000000001.jsonl +0 -0
  245. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/missing_artifact/agent-ac600000000000001.meta.json +0 -0
  246. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/missing_artifact/agent-ac600000000000002.jsonl +0 -0
  247. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/missing_artifact/agent-ac600000000000002.meta.json +0 -0
  248. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/missing_artifact/journal.jsonl +0 -0
  249. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/reader_minimal/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_a0000000-001/journal.jsonl +0 -0
  250. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/reader_minimal/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_b0000000-002/agent-a1111111111111111.jsonl +0 -0
  251. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/reader_minimal/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_b0000000-002/agent-a1111111111111111.meta.json +0 -0
  252. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/reader_minimal/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_b0000000-002/agent-a2222222222222222.jsonl +0 -0
  253. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/reader_minimal/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_b0000000-002/agent-a2222222222222222.meta.json +0 -0
  254. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/reader_minimal/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_b0000000-002/journal.jsonl +0 -0
  255. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/reader_minimal/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_c0000000-003/journal.jsonl +0 -0
  256. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/redaction_adversarial/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-960/agent-ad100000000000001.jsonl +0 -0
  257. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/redaction_adversarial/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-960/agent-ad100000000000001.meta.json +0 -0
  258. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/redaction_adversarial/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/workflows/wf_00000000-960/journal.jsonl +0 -0
  259. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/self_reference/agent-af000000000000001.jsonl +0 -0
  260. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/self_reference/agent-af000000000000001.meta.json +0 -0
  261. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/self_reference/agent-af000000000000002.jsonl +0 -0
  262. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/self_reference/agent-af000000000000002.meta.json +0 -0
  263. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/self_reference/agent-af000000000000003.jsonl +0 -0
  264. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/self_reference/agent-af000000000000003.meta.json +0 -0
  265. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/self_reference/agent-af000000000000004.jsonl +0 -0
  266. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/self_reference/agent-af000000000000004.meta.json +0 -0
  267. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/self_reference/agent-af000000000000005.jsonl +0 -0
  268. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/self_reference/agent-af000000000000005.meta.json +0 -0
  269. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/self_reference/journal.jsonl +0 -0
  270. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/session_bridge_only/-home-user-project/00000000-0000-4000-8000-000000000000.jsonl +0 -0
  271. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/session_clean/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-ac700000000000001.jsonl +0 -0
  272. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/session_clean/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-ac700000000000001.meta.json +0 -0
  273. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/session_clean/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-ac700000000000002.jsonl +0 -0
  274. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/session_clean/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-ac700000000000002.meta.json +0 -0
  275. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/session_clean/-home-user-project/00000000-0000-4000-8000-000000000000.jsonl +0 -0
  276. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/session_compaction/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-aca00000000000001.jsonl +0 -0
  277. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/session_compaction/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-aca00000000000001.meta.json +0 -0
  278. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/session_compaction/-home-user-project/00000000-0000-4000-8000-000000000000.jsonl +0 -0
  279. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/session_dedup/-home-user-project/00000000-0000-4000-8000-000000000000.jsonl +0 -0
  280. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/session_envelope/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-ac900000000000001.jsonl +0 -0
  281. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/session_envelope/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-ac900000000000001.meta.json +0 -0
  282. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/session_envelope/-home-user-project/00000000-0000-4000-8000-000000000000.jsonl +0 -0
  283. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/session_human_interrupt/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-acc00000000000001.jsonl +0 -0
  284. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/session_human_interrupt/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-acc00000000000001.meta.json +0 -0
  285. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/session_human_interrupt/-home-user-project/00000000-0000-4000-8000-000000000000.jsonl +0 -0
  286. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/session_parent_stop/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-acb00000000000001.jsonl +0 -0
  287. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/session_parent_stop/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-acb00000000000001.meta.json +0 -0
  288. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/session_parent_stop/-home-user-project/00000000-0000-4000-8000-000000000000.jsonl +0 -0
  289. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/session_unattributed_long/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-acd00000000000001.jsonl +0 -0
  290. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/session_unattributed_long/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-acd00000000000001.meta.json +0 -0
  291. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/session_unattributed_long/-home-user-project/00000000-0000-4000-8000-000000000000.jsonl +0 -0
  292. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/session_unattributed_short/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-ace00000000000001.jsonl +0 -0
  293. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/session_unattributed_short/-home-user-project/00000000-0000-4000-8000-000000000000/subagents/agent-ace00000000000001.meta.json +0 -0
  294. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/session_unattributed_short/-home-user-project/00000000-0000-4000-8000-000000000000.jsonl +0 -0
  295. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/structured_output_corrupt/agent-ac400000000000001.jsonl +0 -0
  296. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/structured_output_corrupt/agent-ac400000000000001.meta.json +0 -0
  297. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/fixtures/runs/structured_output_corrupt/journal.jsonl +0 -0
  298. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/g_corpus_support.py +0 -0
  299. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/g_helpers.py +0 -0
  300. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/g_independent_return.py +0 -0
  301. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/n3b_helpers.py +0 -0
  302. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/n3b_planted.py +0 -0
  303. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/n4_reference_commands.py +0 -0
  304. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/n4b2_helpers.py +0 -0
  305. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/n5b_helpers.py +0 -0
  306. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/n5c1_helpers.py +0 -0
  307. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/n5c2_helpers.py +0 -0
  308. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/n6_helpers.py +0 -0
  309. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/privacy_rules.py +0 -0
  310. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/rule_fixtures.py +0 -0
  311. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/synthetic-ids.txt +0 -0
  312. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_attempt_facts.py +0 -0
  313. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_attempt_failed.py +0 -0
  314. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_attribution.py +0 -0
  315. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_bug_report.py +0 -0
  316. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_claim_contradiction.py +0 -0
  317. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_cli_smoke.py +0 -0
  318. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_codex_unavailable.py +0 -0
  319. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_config.py +0 -0
  320. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_deep_lines.py +0 -0
  321. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_detectors_base.py +0 -0
  322. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_detectors_core.py +0 -0
  323. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_detectors_registry.py +0 -0
  324. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_detectors_tooling.py +0 -0
  325. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_disclosure_primitives.py +0 -0
  326. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_empty_state.py +0 -0
  327. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_export.py +0 -0
  328. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_export_public.py +0 -0
  329. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fa_commit_no_id.py +0 -0
  330. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fa_fork.py +0 -0
  331. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fa_generations.py +0 -0
  332. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fa_path_token.py +0 -0
  333. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fa_return_boundary.py +0 -0
  334. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fa_wasted.py +0 -0
  335. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fb_here.py +0 -0
  336. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fb_live_now.py +0 -0
  337. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fb_rescue_live.py +0 -0
  338. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix10_redact.py +0 -0
  339. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix11_redact.py +0 -0
  340. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix12_redact.py +0 -0
  341. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix1_commit.py +0 -0
  342. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix1_launch.py +0 -0
  343. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix1_poll.py +0 -0
  344. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix1_redact.py +0 -0
  345. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix2_launch.py +0 -0
  346. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix2_poll.py +0 -0
  347. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix2_redact.py +0 -0
  348. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix3_redact.py +0 -0
  349. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix4_fuzz.py +0 -0
  350. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix4_lexer.py +0 -0
  351. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix4_redact.py +0 -0
  352. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix4_sinks.py +0 -0
  353. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix5_lexer.py +0 -0
  354. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix5_redact.py +0 -0
  355. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix5_sinks.py +0 -0
  356. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix6_fuzz.py +0 -0
  357. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix6_hook.py +0 -0
  358. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix6_lexer.py +0 -0
  359. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix6_redact.py +0 -0
  360. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix6_sinks.py +0 -0
  361. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix6b_title.py +0 -0
  362. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix7_e2e.py +0 -0
  363. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix7_fuzz.py +0 -0
  364. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix7_redact.py +0 -0
  365. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix7_sinks.py +0 -0
  366. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix7_title.py +0 -0
  367. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix8_e2e.py +0 -0
  368. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix8_fuzz.py +0 -0
  369. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix8_redact.py +0 -0
  370. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix8_sinks.py +0 -0
  371. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix9_e2e.py +0 -0
  372. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix9_fuzz.py +0 -0
  373. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix9_redact.py +0 -0
  374. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_fix9_sinks.py +0 -0
  375. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_help.py +0 -0
  376. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_scan.py +0 -0
  377. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_table.py +0 -0
  378. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fc_wording.py +0 -0
  379. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_field_v03.py +0 -0
  380. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_field_v03_more.py +0 -0
  381. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_filter_scope.py +0 -0
  382. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fixa_discovery.py +0 -0
  383. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fixa_enqueue.py +0 -0
  384. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_fixa_reader.py +0 -0
  385. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_g_a1_hooks.py +0 -0
  386. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_g_a1_return.py +0 -0
  387. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_g_b1.py +0 -0
  388. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_g_c.py +0 -0
  389. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_g_commit_sentences.py +0 -0
  390. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_g_commits.py +0 -0
  391. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_g_consumers.py +0 -0
  392. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_g_corpus.py +0 -0
  393. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_g_denied.py +0 -0
  394. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_g_failed.py +0 -0
  395. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_g_here.py +0 -0
  396. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_g_hooks.py +0 -0
  397. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_g_registry.py +0 -0
  398. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_g_rescue.py +0 -0
  399. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_g_return.py +0 -0
  400. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_g_selfreport.py +0 -0
  401. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_hooks_benchmark.py +0 -0
  402. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_hooks_cli.py +0 -0
  403. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_journal_malformed_fields.py +0 -0
  404. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_journal_state.py +0 -0
  405. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_model_allocation_guard.py +0 -0
  406. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n1_markers.py +0 -0
  407. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n1_parent_index.py +0 -0
  408. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n2_lifecycle.py +0 -0
  409. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_apply.py +0 -0
  410. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_canonical_ids.py +0 -0
  411. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_context.py +0 -0
  412. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_demo.py +0 -0
  413. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_first_line.py +0 -0
  414. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_fixa_dedupe.py +0 -0
  415. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_fixa_demo.py +0 -0
  416. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_fixa_local_path.py +0 -0
  417. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_fixa_names.py +0 -0
  418. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_fixa_paths_c4.py +0 -0
  419. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_fixa_paths_c6.py +0 -0
  420. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_fixa_paths_s10.py +0 -0
  421. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_fixa_paths_s4.py +0 -0
  422. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_fixa_titles.py +0 -0
  423. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_fixb_hook_group.py +0 -0
  424. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_fixb_noident_pointer.py +0 -0
  425. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_fixb_repr_tokens.py +0 -0
  426. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_fixb_rescue_c1.py +0 -0
  427. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_fixb_run_ids.py +0 -0
  428. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_fixb_traversal.py +0 -0
  429. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_fixr2_ids.py +0 -0
  430. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_fixr2_paths.py +0 -0
  431. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_fixr2_raw_dupes.py +0 -0
  432. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_fixr2_schema2_hostile.py +0 -0
  433. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_flags.py +0 -0
  434. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_handler_errors.py +0 -0
  435. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_hooks.py +0 -0
  436. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_local_path.py +0 -0
  437. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_local_scrub.py +0 -0
  438. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_parser_errors.py +0 -0
  439. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_part2_slow_path.py +0 -0
  440. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_part3_sinks.py +0 -0
  441. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_pointers.py +0 -0
  442. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_reader.py +0 -0
  443. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_rescue.py +0 -0
  444. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_residual_sinks.py +0 -0
  445. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_rules_trend.py +0 -0
  446. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_run_fallback.py +0 -0
  447. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_run_local.py +0 -0
  448. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_run_noncanonical_agent.py +0 -0
  449. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_run_path_matrix.py +0 -0
  450. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_run_share.py +0 -0
  451. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_scan.py +0 -0
  452. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_slow_path.py +0 -0
  453. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n3b_watch.py +0 -0
  454. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n4a_base_repo.py +0 -0
  455. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n4a_commit_grammar.py +0 -0
  456. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n4a_lexer.py +0 -0
  457. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n4a_measure.py +0 -0
  458. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n4a_readonly.py +0 -0
  459. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n4a_rows.py +0 -0
  460. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n4a_write_grammar.py +0 -0
  461. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n4b1_discovery.py +0 -0
  462. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n4b1_reader_facts.py +0 -0
  463. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n4b1_schema2.py +0 -0
  464. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n4b2_forms.py +0 -0
  465. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n4b2_measure.py +0 -0
  466. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n4b2_population.py +0 -0
  467. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n4b2_reasons.py +0 -0
  468. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n4b2_repo_groups.py +0 -0
  469. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n4b2_rows.py +0 -0
  470. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n4fixb_c3.py +0 -0
  471. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n4fixb_differential.py +0 -0
  472. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n4fixb_minor.py +0 -0
  473. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n4fixb_s3.py +0 -0
  474. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n4fixb_s4.py +0 -0
  475. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n4fixb_s5_s10.py +0 -0
  476. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n4fixc_a4.py +0 -0
  477. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n4fixd_a5.py +0 -0
  478. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n4fixe_a5.py +0 -0
  479. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n5_schema3_goldens.py +0 -0
  480. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n5a1_schema3.py +0 -0
  481. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n5a2_docs.py +0 -0
  482. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n5b_detectors.py +0 -0
  483. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n5b_inputs.py +0 -0
  484. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n5b_severity.py +0 -0
  485. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n5b_verdict.py +0 -0
  486. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n5c1_gaps.py +0 -0
  487. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n5c1_look.py +0 -0
  488. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n5c1_observation_export.py +0 -0
  489. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n5c1_observe.py +0 -0
  490. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n5c1_rescue.py +0 -0
  491. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n5c1_returned.py +0 -0
  492. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n5c1_work_at_risk.py +0 -0
  493. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n5c2_exit_codes.py +0 -0
  494. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n5c2_misc.py +0 -0
  495. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n5c2_status_repos.py +0 -0
  496. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n5fix1_misc.py +0 -0
  497. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n5fix1_plan.py +0 -0
  498. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n5fix1_returned.py +0 -0
  499. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n5fix1_severity.py +0 -0
  500. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n5fix1_status.py +0 -0
  501. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n6_alias_state.py +0 -0
  502. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n6_cwd.py +0 -0
  503. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n6_docs.py +0 -0
  504. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n6_fix1.py +0 -0
  505. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n6_here_run.py +0 -0
  506. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n6_here_scan.py +0 -0
  507. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n6_pins.py +0 -0
  508. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n6_resolve.py +0 -0
  509. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n6_roundtrip.py +0 -0
  510. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n6_stderr.py +0 -0
  511. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n7_detectors.py +0 -0
  512. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n8_fix1.py +0 -0
  513. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n8_fix2.py +0 -0
  514. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n8_k1_killed.py +0 -0
  515. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n8_k2_what_to_do.py +0 -0
  516. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n8_k3_precursor.py +0 -0
  517. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n8_k4_rescue.py +0 -0
  518. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n8_k5_watch.py +0 -0
  519. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n8_k6_rules.py +0 -0
  520. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_n9_release_gate.py +0 -0
  521. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_no_lazy_fetch.py +0 -0
  522. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_no_write_surface.py +0 -0
  523. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_observe.py +0 -0
  524. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_privacy.py +0 -0
  525. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_privacy_matrix.py +0 -0
  526. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_r1_scan_risk_parity.py +0 -0
  527. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_reader.py +0 -0
  528. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_reader_session.py +0 -0
  529. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_readme.py +0 -0
  530. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_redact.py +0 -0
  531. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_rel_demo.py +0 -0
  532. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_rel_scan_all.py +0 -0
  533. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_rendered_privacy.py +0 -0
  534. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_report_session.py +0 -0
  535. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_report_v2.py +0 -0
  536. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_rescue.py +0 -0
  537. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_rules.py +0 -0
  538. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_rules_propose.py +0 -0
  539. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_rules_review.py +0 -0
  540. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_scan_triage.py +0 -0
  541. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_state.py +0 -0
  542. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_tooling_agent_scope.py +0 -0
  543. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_trend.py +0 -0
  544. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_watch.py +0 -0
  545. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_wheel.py +0 -0
  546. {agent_postmortem-0.3.4 → agent_postmortem-0.3.5}/tests/test_workflows.py +0 -0
@@ -5,6 +5,23 @@ All notable changes to this project are documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.3.5]
9
+
10
+ ### Changed
11
+
12
+ - The PyPI summary is the positioning line the plugin already uses: it reads the Claude Code
13
+ logs already on your machine and tells you which agent's "done" you can't trust. The package
14
+ is classified as Alpha, matching the README's status line, and the README's license badge
15
+ links to the LICENSE file by full URL, so it also works on the PyPI page. PyPI version and
16
+ Python version badges join the CI and license badges.
17
+ - Installs come from PyPI now. The README's first command is `uvx agent-postmortem scan`, and
18
+ Quick start, the plugin README and the `/postmortem` skill say `uv tool install
19
+ agent-postmortem`. No git is needed.
20
+ - The plugin installs its CLI from PyPI at the plugin's own version. It falls back to the
21
+ matching GitHub tag only if that install fails, for example in the minutes between a release
22
+ reaching GitHub and reaching PyPI. Both attempts share the one 60-second deadline the single
23
+ install had. The missing-CLI hint says `uv tool install agent-postmortem`.
24
+
8
25
  ## [0.3.4]
9
26
 
10
27
  ### Fixed
@@ -70,22 +70,20 @@ sets.
70
70
 
71
71
  Releases are cut by pushing a `v*` tag, which `.github/workflows/release.yml`
72
72
  picks up: it runs the tests, builds the wheel and sdist, runs the privacy
73
- check against them, and makes the GitHub release with the built files and
74
- that version's CHANGELOG section. Users install from that tag
75
- (`uv tool install git+https://github.com/zeyusuntt/agent-postmortem@v<version>`),
76
- and so does the plugin.
77
-
78
- Publishing to PyPI (via a trusted publisher, no API token stored in this
79
- repository) is switched off until the repository variable `PUBLISH_PYPI` is
80
- `true`; without it the publish job is skipped, not failed. To turn it on once
81
- the setup below is done: set the variable (Settings, Secrets and variables,
82
- Actions, Variables, `PUBLISH_PYPI` = `true`), then re-run the release workflow
83
- for the existing tag (Actions, Release, the tag's run, Re-run all jobs), and
84
- check that installing the `agent-postmortem` package from PyPI gives that
85
- version. After that,
86
- switch the install lines in README.md, plugin/README.md, the postmortem skill
87
- and plugin/hooks/run.sh back to PyPI in one release (tests/test_launch_docs.py
88
- and tests/test_plugin.py pin them).
73
+ check against them, makes the GitHub release with the built files and
74
+ that version's CHANGELOG section, and publishes both files to PyPI through a
75
+ trusted publisher (no API token is stored in this repository). Users install
76
+ from PyPI (`uv tool install agent-postmortem`), and so does the plugin, pinned
77
+ to its own version, with the matching GitHub tag as a fallback for the minutes
78
+ between the tag and the PyPI upload (tests/test_launch_docs.py and
79
+ tests/test_plugin.py pin these install lines).
80
+
81
+ The publish job runs only while the repository variable `PUBLISH_PYPI` is
82
+ `true` (Settings, Secrets and variables, Actions, Variables); without it the
83
+ job is skipped, not failed. If a release's publish was skipped, set the
84
+ variable, re-run the release workflow for that tag (Actions, Release, the
85
+ tag's run, Re-run all jobs), and check that installing `agent-postmortem`
86
+ from PyPI gives that version.
89
87
 
90
88
  One-time trusted-publisher setup on pypi.org, before the first tagged
91
89
  release:
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: agent-postmortem
3
- Version: 0.3.4
4
- Summary: Post-mortem for multi-agent coding runs: prove what silently went wrong, then draft the rule that prevents it.
3
+ Version: 0.3.5
4
+ Summary: 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.
5
5
  Project-URL: Homepage, https://github.com/zeyusuntt/agent-postmortem
6
6
  Project-URL: Issues, https://github.com/zeyusuntt/agent-postmortem/issues
7
7
  Project-URL: Changelog, https://github.com/zeyusuntt/agent-postmortem/blob/main/CHANGELOG.md
8
8
  License: MIT
9
9
  License-File: LICENSE
10
- Classifier: Development Status :: 4 - Beta
10
+ Classifier: Development Status :: 3 - Alpha
11
11
  Classifier: Environment :: Console
12
12
  Classifier: Intended Audience :: Developers
13
13
  Classifier: License :: OSI Approved :: MIT License
@@ -30,15 +30,17 @@ agent-postmortem reads the transcripts Claude Code already wrote under `~/.claud
30
30
  On the maintainer's machine (scan 2026-10-27, 0.3.2), 13 of 166 workflow runs launched at least one agent's task a second time, and 10.2 hours went to retries and to attempts that ended without a result.
31
31
 
32
32
  ```
33
- uvx --from git+https://github.com/zeyusuntt/agent-postmortem@v0.3.4 agent-postmortem scan
33
+ uvx agent-postmortem scan
34
34
  ```
35
35
 
36
- That runs the tagged release straight from GitHub (it needs [uv](https://docs.astral.sh/uv/) and git). A PyPI release is coming. On a machine with no runs yet it says where it looked and suggests `agent-postmortem demo`.
36
+ That runs the latest release from PyPI with [uv](https://docs.astral.sh/uv/), which fetches Python 3.11 or later if you don't have it; nothing else to install. On a machine with no runs yet it says where it looked and suggests `agent-postmortem demo`.
37
37
 
38
38
  The command-line tool is local and read-only: Python standard library only, no LLM, no network access, and it never changes your files, transcripts, commits, or branches. (The Claude Code plugin's one network action, installing that tool, is described under Privacy; Limits notes two rare git index modes in which git's own `status` still updates its bookkeeping.) What it covers, below, lists the run shapes it handles and the ones it does not yet. Status: alpha, used so far on the maintainer's own machines. Claude Code only.
39
39
 
40
40
  [![CI](https://github.com/zeyusuntt/agent-postmortem/actions/workflows/ci.yml/badge.svg)](https://github.com/zeyusuntt/agent-postmortem/actions/workflows/ci.yml)
41
- [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
41
+ [![PyPI](https://img.shields.io/pypi/v/agent-postmortem.svg)](https://pypi.org/project/agent-postmortem/)
42
+ [![Python versions](https://img.shields.io/pypi/pyversions/agent-postmortem.svg)](https://pypi.org/project/agent-postmortem/)
43
+ [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/zeyusuntt/agent-postmortem/blob/main/LICENSE)
42
44
 
43
45
  ```
44
46
  RUN wf_00000000-d30 DEGRADED ended 2026-01-06 19:55Z
@@ -96,10 +98,10 @@ If you run one of the partial or not-yet shapes, please open a ["my run shape is
96
98
 
97
99
  ## Quick start
98
100
 
99
- Install the command-line tool from the tagged GitHub release with [uv](https://docs.astral.sh/uv/) and git (uv fetches Python 3.11 or later if you don't have it), then try it:
101
+ Install the command-line tool from PyPI with [uv](https://docs.astral.sh/uv/) (it fetches Python 3.11 or later if you don't have it), then try it:
100
102
 
101
103
  ```
102
- uv tool install git+https://github.com/zeyusuntt/agent-postmortem@v0.3.4
104
+ uv tool install agent-postmortem
103
105
  agent-postmortem demo
104
106
  agent-postmortem scan
105
107
  agent-postmortem run <run-id>
@@ -245,7 +247,7 @@ Paths inside free text (finding titles, diagnostics, error messages, and at `--l
245
247
 
246
248
  State lives in `$XDG_STATE_HOME/agent-postmortem/`, or `~/.local/state/agent-postmortem/` if that variable is unset: `state.json` (which findings a session already reported, and the rules the 0.1 `apply` command wrote, now read-only history), plus `secret` and `aliases.json` for the aliases. All three are mode 0600. The secret and the registry are never printed; `trend` shows the applied-rule history from `state.json` at the active level. If a command prints `stable aliases unavailable` on stderr, that output named everything `agent-1`, `agent-2`, and so on instead of by alias; nothing is repaired automatically, because a new secret would change every alias. Remove both `secret` and `aliases.json` to start over with new aliases.
247
249
 
248
- The plugin's one network action happens on `SessionStart` only: when it has not installed a CLI into its own data directory and no `agent-postmortem` on `PATH` passes its protocol check, it installs the CLI from the GitHub tag that matches the plugin's version (`v0.3.4`) into that data directory, retrying at most once every 24 hours on failure; opt out by setting `AGENT_POSTMORTEM_NO_AUTO_INSTALL=1`, or by installing the CLI yourself first.
250
+ The plugin's one network action happens on `SessionStart` only: when it has not installed a CLI into its own data directory and no `agent-postmortem` on `PATH` passes its protocol check, it installs the CLI from PyPI at the plugin's own version, or from the matching GitHub tag if that install fails, into that data directory, retrying at most once every 24 hours on failure; opt out by setting `AGENT_POSTMORTEM_NO_AUTO_INSTALL=1`, or by installing the CLI yourself first.
249
251
 
250
252
  ## How it was built
251
253
 
@@ -7,15 +7,17 @@ agent-postmortem reads the transcripts Claude Code already wrote under `~/.claud
7
7
  On the maintainer's machine (scan 2026-10-27, 0.3.2), 13 of 166 workflow runs launched at least one agent's task a second time, and 10.2 hours went to retries and to attempts that ended without a result.
8
8
 
9
9
  ```
10
- uvx --from git+https://github.com/zeyusuntt/agent-postmortem@v0.3.4 agent-postmortem scan
10
+ uvx agent-postmortem scan
11
11
  ```
12
12
 
13
- That runs the tagged release straight from GitHub (it needs [uv](https://docs.astral.sh/uv/) and git). A PyPI release is coming. On a machine with no runs yet it says where it looked and suggests `agent-postmortem demo`.
13
+ That runs the latest release from PyPI with [uv](https://docs.astral.sh/uv/), which fetches Python 3.11 or later if you don't have it; nothing else to install. On a machine with no runs yet it says where it looked and suggests `agent-postmortem demo`.
14
14
 
15
15
  The command-line tool is local and read-only: Python standard library only, no LLM, no network access, and it never changes your files, transcripts, commits, or branches. (The Claude Code plugin's one network action, installing that tool, is described under Privacy; Limits notes two rare git index modes in which git's own `status` still updates its bookkeeping.) What it covers, below, lists the run shapes it handles and the ones it does not yet. Status: alpha, used so far on the maintainer's own machines. Claude Code only.
16
16
 
17
17
  [![CI](https://github.com/zeyusuntt/agent-postmortem/actions/workflows/ci.yml/badge.svg)](https://github.com/zeyusuntt/agent-postmortem/actions/workflows/ci.yml)
18
- [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
18
+ [![PyPI](https://img.shields.io/pypi/v/agent-postmortem.svg)](https://pypi.org/project/agent-postmortem/)
19
+ [![Python versions](https://img.shields.io/pypi/pyversions/agent-postmortem.svg)](https://pypi.org/project/agent-postmortem/)
20
+ [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/zeyusuntt/agent-postmortem/blob/main/LICENSE)
19
21
 
20
22
  ```
21
23
  RUN wf_00000000-d30 DEGRADED ended 2026-01-06 19:55Z
@@ -73,10 +75,10 @@ If you run one of the partial or not-yet shapes, please open a ["my run shape is
73
75
 
74
76
  ## Quick start
75
77
 
76
- Install the command-line tool from the tagged GitHub release with [uv](https://docs.astral.sh/uv/) and git (uv fetches Python 3.11 or later if you don't have it), then try it:
78
+ Install the command-line tool from PyPI with [uv](https://docs.astral.sh/uv/) (it fetches Python 3.11 or later if you don't have it), then try it:
77
79
 
78
80
  ```
79
- uv tool install git+https://github.com/zeyusuntt/agent-postmortem@v0.3.4
81
+ uv tool install agent-postmortem
80
82
  agent-postmortem demo
81
83
  agent-postmortem scan
82
84
  agent-postmortem run <run-id>
@@ -222,7 +224,7 @@ Paths inside free text (finding titles, diagnostics, error messages, and at `--l
222
224
 
223
225
  State lives in `$XDG_STATE_HOME/agent-postmortem/`, or `~/.local/state/agent-postmortem/` if that variable is unset: `state.json` (which findings a session already reported, and the rules the 0.1 `apply` command wrote, now read-only history), plus `secret` and `aliases.json` for the aliases. All three are mode 0600. The secret and the registry are never printed; `trend` shows the applied-rule history from `state.json` at the active level. If a command prints `stable aliases unavailable` on stderr, that output named everything `agent-1`, `agent-2`, and so on instead of by alias; nothing is repaired automatically, because a new secret would change every alias. Remove both `secret` and `aliases.json` to start over with new aliases.
224
226
 
225
- The plugin's one network action happens on `SessionStart` only: when it has not installed a CLI into its own data directory and no `agent-postmortem` on `PATH` passes its protocol check, it installs the CLI from the GitHub tag that matches the plugin's version (`v0.3.4`) into that data directory, retrying at most once every 24 hours on failure; opt out by setting `AGENT_POSTMORTEM_NO_AUTO_INSTALL=1`, or by installing the CLI yourself first.
227
+ The plugin's one network action happens on `SessionStart` only: when it has not installed a CLI into its own data directory and no `agent-postmortem` on `PATH` passes its protocol check, it installs the CLI from PyPI at the plugin's own version, or from the matching GitHub tag if that install fails, into that data directory, retrying at most once every 24 hours on failure; opt out by setting `AGENT_POSTMORTEM_NO_AUTO_INSTALL=1`, or by installing the CLI yourself first.
226
228
 
227
229
  ## How it was built
228
230
 
@@ -6377,9 +6377,12 @@ internal deadline as `check`.
6377
6377
 
6378
6378
  On SessionStart, if no compatible CLI resolves and `uv` is on PATH and
6379
6379
  `AGENT_POSTMORTEM_NO_AUTO_INSTALL` is unset, `run.sh` runs `uv tool install
6380
+ "agent-postmortem==<version in plugin.json>" --python 3.11+` from PyPI, and only if that
6381
+ install fails, `uv tool install
6380
6382
  "git+https://github.com/zeyusuntt/agent-postmortem@v<version in plugin.json>" --python
6381
- 3.11+` (Plan B, 2026-10-28: the public repository's tag instead of PyPI until PyPI
6382
- publishing works; it needs git besides uv; the missing-CLI hint names the same source) (`UV_TOOL_DIR`
6383
+ 3.11+` (0.3.5: PyPI first; the tag covers the minutes between a release reaching GitHub
6384
+ and reaching PyPI, and needs git besides uv; both attempts run inside the one 60 s
6385
+ deadline below; the missing-CLI hint names `uv tool install agent-postmortem`) (`UV_TOOL_DIR`
6383
6386
  and `UV_TOOL_BIN_DIR` both pointed at `$DATA_DIR`, 7.2's one data
6384
6387
  directory, so the installed shim lands at `$DATA_DIR/bin/agent-postmortem`,
6385
6388
  exactly where resolution step (1) looks) under the same process-group-kill
@@ -6704,7 +6707,7 @@ later events go positional).
6704
6707
 
6705
6708
  ### 8.1 Package
6706
6709
 
6707
- `pyproject.toml`: name `agent-postmortem`, version `0.3.4`, console scripts
6710
+ `pyproject.toml`: name `agent-postmortem`, version `0.3.5`, console scripts
6708
6711
  `agent-postmortem` and `postmortem`, `requires-python >= 3.11`, no runtime
6709
6712
  dependencies, `[project.optional-dependencies].dev = ["pytest>=8",
6710
6713
  "ruff>=0.6"]`, classifiers, URLs (Homepage, Issues, Changelog). The wheel
@@ -6754,8 +6757,8 @@ check of the artifacts), then a `github-release` job (`permissions: contents: wr
6754
6757
  `gh release create <tag> dist/* --verify-tag` with that version's CHANGELOG section as
6755
6758
  notes) and a publish job with `environment: pypi`, `permissions: id-token: write`,
6756
6759
  `pypa/gh-action-pypi-publish@release/v1` that runs only when the repository variable
6757
- `PUBLISH_PYPI` is `true` (Plan B, 2026-10-28: until the PyPI trusted publisher works, a
6758
- tag must not turn the release red; a skipped job is not a failure). Both workflows declare a
6760
+ `PUBLISH_PYPI` is `true` (a tag must never turn the release red when publishing is
6761
+ switched off; a skipped job is not a failure; PyPI publishing is on from 0.3.4). Both workflows declare a
6759
6762
  top-level `permissions: contents: read` so every job is read-only by
6760
6763
  default regardless of the repository's own token-permission setting; the
6761
6764
  publish job's own `id-token: write` is layered on top of that at the job
@@ -6769,14 +6772,14 @@ pypi.org and the TestPyPI dry run.
6769
6772
  First screen, in order (from 0.3.3): name; the question the tool answers
6770
6773
  ("Which 'done' in your last Claude Code run can't you trust?"); one paragraph on
6771
6774
  what it reads, what it reports and that it is local and read-only; one dated number
6772
- from a named version's scan; `uvx --from git+https://github.com/zeyusuntt/agent-postmortem@v<version>
6773
- agent-postmortem scan` (the tagged GitHub release; one line says a PyPI release is coming); the status paragraph; badges (CI, license; PyPI version and Python versions only once a
6775
+ from a named version's scan; `uvx agent-postmortem scan` (from PyPI, 0.3.5; 0.3.3 and
6776
+ 0.3.4 used the tagged GitHub release while PyPI was not yet working); the status paragraph; badges (CI, license; PyPI version and Python versions only once a
6774
6777
  PyPI release exists, since a badge for a missing release renders broken),
6775
6778
  the demo output as a fenced code block (not a screenshot: it must stay text,
6776
6779
  so it can be diffed against a live `agent-postmortem demo` run -- 8.2,
6777
6780
  tests/test_readme.py), the install command that works for the current
6778
- distribution (a GitHub install with `uv tool install git+...` until the
6779
- first PyPI release, then `uvx agent-postmortem scan`), a command table
6781
+ distribution (`uv tool install agent-postmortem` from PyPI from 0.3.5; a
6782
+ GitHub install with `uv tool install git+...` in 0.3.3 and 0.3.4), a command table
6780
6783
  listing exactly which commands take `--json` and which take `--no-redact`.
6781
6784
  Then "What it covers", before Quick start: one table of run shapes and failure
6782
6785
  kinds, each marked covered, partial or not yet, as checked against the upstream issue
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-postmortem",
3
- "version": "0.3.4",
3
+ "version": "0.3.5",
4
4
  "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.",
5
5
  "author": {
6
6
  "name": "zeyusuntt",
@@ -41,15 +41,16 @@ On `SessionStart`, if the plugin has not installed a CLI into its own data
41
41
  directory and no `agent-postmortem` on your `PATH` passes its protocol check
42
42
  (`agent-postmortem hook capabilities` answers protocol 1), and
43
43
  [`uv`](https://docs.astral.sh/uv/) is on your `PATH`, the plugin installs
44
- the version pinned in the plugin manifest from its GitHub tag (`git` is
45
- needed too), retrying at most once every 24
44
+ the version pinned in the plugin manifest from PyPI, or from the matching
45
+ GitHub tag if that install fails (that fallback needs `git`), retrying at
46
+ most once every 24
46
47
  hours on failure, and writes what happened to a log file instead of your
47
48
  terminal. This is the plugin's only network access.
48
49
 
49
50
  Opt out by setting `AGENT_POSTMORTEM_NO_AUTO_INSTALL=1` (in your shell
50
51
  profile, or wherever you set environment variables for Claude Code), or by
51
52
  installing the CLI yourself ahead of time with
52
- `uv tool install git+https://github.com/zeyusuntt/agent-postmortem@v0.3.4`.
53
+ `uv tool install agent-postmortem`.
53
54
 
54
55
  ## The `/postmortem` skill
55
56
 
@@ -40,7 +40,9 @@ fi
40
40
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
41
41
  PLUGIN_ROOT="$(cd "$SCRIPT_DIR/.." >/dev/null 2>&1 && pwd)"
42
42
  PLUGIN_JSON="$PLUGIN_ROOT/.claude-plugin/plugin.json"
43
- # The CLI install source (docs/DESIGN.md 7.3): the public repository at the tag v<plugin version>.
43
+ # The CLI install sources (docs/DESIGN.md 7.3): PyPI at the plugin version first, then the
44
+ # public repository at the tag v<plugin version> if that install fails.
45
+ PYPI_PACKAGE="agent-postmortem"
44
46
  GIT_SOURCE="git+https://github.com/zeyusuntt/agent-postmortem"
45
47
 
46
48
  # docs/DESIGN.md 7.2's D9: one data directory, derived once, used for
@@ -325,8 +327,8 @@ _print_missing_cli_hint_if_due() {
325
327
  if _modified_within_a_day "$marker"; then
326
328
  return 0
327
329
  fi
328
- printf '{"systemMessage": "agent-postmortem CLI not found; run: uv tool install %s@v%s"}\n' \
329
- "$GIT_SOURCE" "$(_plugin_version)"
330
+ printf '{"systemMessage": "agent-postmortem CLI not found; run: uv tool install %s"}\n' \
331
+ "$PYPI_PACKAGE"
330
332
  : >"$marker" 2>/dev/null
331
333
  }
332
334
 
@@ -353,16 +355,22 @@ _maybe_install() {
353
355
  pinned_version="$(_plugin_version)"
354
356
  [ -n "$pinned_version" ] || return 0
355
357
 
356
- # Plan B (2026-10-28): the git tag that matches the plugin version, until PyPI works.
357
- source="$GIT_SOURCE@v$pinned_version"
358
+ # PyPI at the plugin version first; the matching GitHub tag only if that install fails
359
+ # (for example in the minutes between a release reaching GitHub and reaching PyPI). Both
360
+ # run under the one 60-second deadline the single install had, so the hook's time budget
361
+ # is unchanged.
362
+ pypi_source="$PYPI_PACKAGE==$pinned_version"
363
+ git_source="$GIT_SOURCE@v$pinned_version"
358
364
  {
359
- printf '%s attempting: uv tool install %s\n' \
360
- "$(date -u +%Y-%m-%dT%H:%M:%SZ)" "$source"
365
+ printf '%s attempting: uv tool install %s (fallback: %s)\n' \
366
+ "$(date -u +%Y-%m-%dT%H:%M:%SZ)" "$pypi_source" "$git_source"
361
367
  } >>"$install_log" 2>/dev/null
362
368
 
363
369
  mkdir -p "$DATA_DIR/bin" 2>/dev/null
364
370
  UV_TOOL_DIR="$DATA_DIR" UV_TOOL_BIN_DIR="$DATA_DIR/bin" \
365
- _run_with_deadline 60 uv tool install "$source" --python 3.11+ \
371
+ _run_with_deadline 60 sh -c \
372
+ 'uv tool install "$1" --python 3.11+ || uv tool install "$2" --python 3.11+' \
373
+ sh "$pypi_source" "$git_source" \
366
374
  </dev/null >>"$install_log" 2>&1
367
375
  }
368
376
 
@@ -114,5 +114,5 @@ Bash tool.
114
114
  `--no-redact` only if the user asks to see raw paths or session ids, and
115
115
  say so when you do.
116
116
  - If the CLI is missing entirely, tell the user to run
117
- `uv tool install git+https://github.com/zeyusuntt/agent-postmortem@v0.3.4` and stop; do not try to install it
117
+ `uv tool install agent-postmortem` and stop; do not try to install it
118
118
  yourself.
@@ -1,13 +1,13 @@
1
1
  [project]
2
2
  name = "agent-postmortem"
3
- version = "0.3.4"
4
- description = "Post-mortem for multi-agent coding runs: prove what silently went wrong, then draft the rule that prevents it."
3
+ version = "0.3.5"
4
+ 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."
5
5
  readme = "README.md"
6
6
  license = { text = "MIT" }
7
7
  requires-python = ">=3.11"
8
8
  dependencies = []
9
9
  classifiers = [
10
- "Development Status :: 4 - Beta",
10
+ "Development Status :: 3 - Alpha",
11
11
  "Environment :: Console",
12
12
  "Intended Audience :: Developers",
13
13
  "License :: OSI Approved :: MIT License",
@@ -6,4 +6,4 @@ plugin/.claude-plugin/plugin.json's version (docs/DESIGN.md 7.1's D1,
6
6
  enforced by tests/test_plugin.py).
7
7
  """
8
8
 
9
- __version__ = "0.3.4"
9
+ __version__ = "0.3.5"
@@ -1,7 +1,6 @@
1
1
  """README first screen, coverage table and issue templates for the public launch (DESIGN 8.4).
2
2
 
3
- The first screen asks the question the tool answers and gives the PyPI command with a GitHub
4
- fallback; "What it covers" states coverage honestly (covered, partial, not yet) before Quick
3
+ The first screen asks the question the tool answers and gives the one-command PyPI run (0.3.5); "What it covers" states coverage honestly (covered, partial, not yet) before Quick
5
4
  start; every issue template asks for default-level `--bug-report` output and the Claude Code
6
5
  version, and never for a raw transcript.
7
6
  """
@@ -32,11 +31,12 @@ def _section(text: str, heading: str) -> str:
32
31
  return match.group(1)
33
32
 
34
33
 
35
- def test_first_screen_asks_the_question_and_gives_the_tagged_github_command():
34
+ def test_first_screen_asks_the_question_and_gives_the_pypi_command():
36
35
  head = "\n".join(README.splitlines()[:16])
37
36
  assert 'Which "done" in your last Claude Code run can\'t you trust?' in head
38
- assert f"\nuvx --from {GIT_SOURCE}@v{VERSION} agent-postmortem scan\n" in head
39
- assert "PyPI" in head and "coming" in head
37
+ assert "\nuvx agent-postmortem scan\n" in head
38
+ assert GIT_SOURCE not in head
39
+ assert "coming" not in head
40
40
  assert "13 of 166 workflow runs" in head
41
41
 
42
42
 
@@ -79,13 +79,18 @@ def test_no_issue_template_asks_for_transcript_lines():
79
79
  assert "transcript line that shows" not in text, path.name
80
80
 
81
81
 
82
- def test_no_user_facing_text_installs_from_pypi():
83
- """Plan B (2026-10-28): until PyPI works, every install line uses the GitHub tag."""
84
- bare = re.compile(r"pip install agent-postmortem|uvx agent-postmortem|"
85
- r"uv tool install \"?agent-postmortem(?![\w.-]*@)")
82
+ def test_user_facing_install_lines_use_pypi():
83
+ """0.3.5: PyPI works, so no install line a stranger reads points at the GitHub tag.
84
+ The plugin's own fallback to the tag is code in run.sh, tested in test_plugin.py."""
86
85
  for path in USER_FACING:
86
+ if path.name == "run.sh":
87
+ continue
87
88
  text = path.read_text(encoding="utf-8")
88
- assert not bare.search(text), f"{path.name}: {bare.search(text).group(0)}"
89
+ assert f"{GIT_SOURCE}@" not in text, f"{path.name} still installs from the GitHub tag"
90
+ quick_start = _section(README, "Quick start")
91
+ assert "\nuv tool install agent-postmortem\n" in quick_start
92
+ for path in (REPO_ROOT / "plugin" / "README.md", REPO_ROOT / "plugin" / "skills" / "postmortem" / "SKILL.md"):
93
+ assert "uv tool install agent-postmortem" in path.read_text(encoding="utf-8"), path.name
89
94
 
90
95
 
91
96
  def test_every_github_tag_named_in_user_facing_text_is_the_package_version():
@@ -96,11 +96,11 @@ def test_changelog_unreleased_entry_is_first_and_grouped():
96
96
  assert "http" not in entry
97
97
 
98
98
 
99
- def test_the_package_version_is_0_3_4():
99
+ def test_the_package_version_is_0_3_5():
100
100
  pyproject = (REPO_ROOT / "pyproject.toml").read_text(encoding="utf-8")
101
101
  init = (REPO_ROOT / "src" / "agent_postmortem" / "__init__.py").read_text(encoding="utf-8")
102
- assert re.search(r'^version = "0\.3\.4"', pyproject, re.M)
103
- assert '__version__ = "0.3.4"' in init
102
+ assert re.search(r'^version = "0\.3\.5"', pyproject, re.M)
103
+ assert '__version__ = "0.3.5"' in init
104
104
 
105
105
 
106
106
  # ---- DESIGN ----
@@ -72,6 +72,9 @@ POSITIONING = (
72
72
  )
73
73
  REPOSITORY_URL = "https://github.com/zeyusuntt/agent-postmortem"
74
74
  GIT_SOURCE = f"git+{REPOSITORY_URL}"
75
+ # docs/DESIGN.md 7.3 (0.3.5): the CLI comes from PyPI, pinned to the plugin version; the
76
+ # matching GitHub tag is the fallback when that install fails.
77
+ PYPI_SPEC = "agent-postmortem=="
75
78
 
76
79
 
77
80
  def _manifest_version() -> str:
@@ -107,17 +110,17 @@ def test_plugin_version_equals_package_version():
107
110
  assert plugin["version"] == package_version
108
111
 
109
112
 
110
- def test_pyproject_plugin_and_package_versions_are_all_0_3_4():
113
+ def test_pyproject_plugin_and_package_versions_are_all_0_3_5():
111
114
  """docs/DESIGN.md 7.1's D1: the literal, not just mutual equality --
112
115
  a version bump that only kept two of the three in sync would still
113
116
  pass a pure-equality check."""
114
117
  pyproject = tomllib.loads((REPO_ROOT / "pyproject.toml").read_text(encoding="utf-8"))
115
- assert pyproject["project"]["version"] == "0.3.4"
118
+ assert pyproject["project"]["version"] == "0.3.5"
116
119
  plugin = _load_json(PLUGIN_ROOT / ".claude-plugin" / "plugin.json")
117
- assert plugin["version"] == "0.3.4"
120
+ assert plugin["version"] == "0.3.5"
118
121
  import agent_postmortem
119
122
 
120
- assert agent_postmortem.__version__ == "0.3.4"
123
+ assert agent_postmortem.__version__ == "0.3.5"
121
124
 
122
125
 
123
126
  def test_pyproject_declares_agent_postmortem_as_primary_and_postmortem_as_alias():
@@ -372,10 +375,7 @@ def test_run_sh_prints_the_missing_cli_hint_once_a_day(tmp_path):
372
375
  assert second.returncode == 0, second.stderr
373
376
  hint = json.loads(first.stdout)
374
377
  assert hint == {
375
- "systemMessage": (
376
- "agent-postmortem CLI not found; run: uv tool install "
377
- f"{GIT_SOURCE}@v{_manifest_version()}"
378
- )
378
+ "systemMessage": "agent-postmortem CLI not found; run: uv tool install agent-postmortem"
379
379
  }
380
380
  assert second.stdout == ""
381
381
 
@@ -407,15 +407,46 @@ def test_run_sh_attempts_install_once_on_session_start_when_uv_is_on_path(tmp_pa
407
407
  assert second.returncode == 0, second.stderr
408
408
  invocations = uv_log.read_text(encoding="utf-8").splitlines() if uv_log.exists() else []
409
409
  assert len(invocations) == 1, f"expected exactly one uv invocation, got {invocations!r}"
410
- # Plan B (2026-10-28): the CLI comes from the GitHub tag that matches the plugin version,
411
- # not from PyPI.
412
- pinned = f"{GIT_SOURCE}@v{_manifest_version()}"
410
+ # 0.3.5: PyPI first, pinned to the plugin version; a PyPI install that succeeds is the
411
+ # only one attempted.
412
+ pinned = f"{PYPI_SPEC}{_manifest_version()}"
413
413
  assert invocations[0].startswith(f"tool install {pinned} ")
414
414
  install_log = plugin_data / "install.log"
415
415
  assert install_log.exists()
416
416
  assert f"uv tool install {pinned}" in install_log.read_text(encoding="utf-8")
417
417
 
418
418
 
419
+ _FAKE_UV_FAILS_ON_PYPI = r"""#!/usr/bin/env bash
420
+ echo "$@" >> "$AGENT_POSTMORTEM_TEST_UV_LOG"
421
+ case "$*" in
422
+ *agent-postmortem==*) exit 1 ;;
423
+ esac
424
+ exit 0
425
+ """
426
+
427
+
428
+ def test_run_sh_falls_back_to_the_matching_github_tag_when_the_pypi_install_fails(tmp_path):
429
+ uv_bin = tmp_path / "uv-bin"
430
+ uv_log = tmp_path / "uv-invocations.log"
431
+ _write_fake_cli(uv_bin, "uv", _FAKE_UV_FAILS_ON_PYPI)
432
+ plugin_data = tmp_path / "plugin-data"
433
+
434
+ result = _run_run_sh(
435
+ "session-start", path_entries=[str(uv_bin)], plugin_data=plugin_data,
436
+ stdin='{"source": "startup"}', extra_env={"AGENT_POSTMORTEM_TEST_UV_LOG": str(uv_log)},
437
+ )
438
+
439
+ assert result.returncode == 0, result.stderr
440
+ invocations = uv_log.read_text(encoding="utf-8").splitlines()
441
+ version = _manifest_version()
442
+ assert len(invocations) == 2, f"expected PyPI then the GitHub tag, got {invocations!r}"
443
+ assert invocations[0].startswith(f"tool install {PYPI_SPEC}{version} ")
444
+ assert invocations[1].startswith(f"tool install {GIT_SOURCE}@v{version} ")
445
+ log = (plugin_data / "install.log").read_text(encoding="utf-8")
446
+ assert f"uv tool install {PYPI_SPEC}{version}" in log
447
+ assert f"{GIT_SOURCE}@v{version}" in log
448
+
449
+
419
450
  def test_run_sh_never_installs_when_no_auto_install_is_set(tmp_path):
420
451
  uv_bin = tmp_path / "uv-bin"
421
452
  uv_log = tmp_path / "uv-invocations.log"
@@ -4,7 +4,7 @@ requires-python = ">=3.11"
4
4
 
5
5
  [[package]]
6
6
  name = "agent-postmortem"
7
- version = "0.3.4"
7
+ version = "0.3.5"
8
8
  source = { editable = "." }
9
9
 
10
10
  [package.optional-dependencies]