debugbrief 1.1.0__py3-none-any.whl

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.
@@ -0,0 +1,143 @@
1
+ Metadata-Version: 2.4
2
+ Name: debugbrief
3
+ Version: 1.1.0
4
+ Summary: Local-first CLI that records the meaningful context of a debugging session and turns it into a useful markdown brief.
5
+ Author: DebugBrief
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/harihkk/Debug-Brief
8
+ Project-URL: Repository, https://github.com/harihkk/Debug-Brief
9
+ Project-URL: Changelog, https://github.com/harihkk/Debug-Brief/blob/main/CHANGELOG.md
10
+ Project-URL: Issues, https://github.com/harihkk/Debug-Brief/issues
11
+ Keywords: cli,debugging,pull-request,handoff,incident,report
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Environment :: Console
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Operating System :: POSIX
16
+ Classifier: Operating System :: MacOS
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3.9
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Programming Language :: Python :: 3.13
23
+ Classifier: Topic :: Software Development
24
+ Requires-Python: >=3.9
25
+ Description-Content-Type: text/markdown
26
+ License-File: LICENSE
27
+ Provides-Extra: dev
28
+ Requires-Dist: pytest>=7.0; extra == "dev"
29
+ Dynamic: license-file
30
+
31
+ # DebugBrief
32
+
33
+ [![CI](https://github.com/harihkk/Debug-Brief/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/harihkk/Debug-Brief/actions/workflows/ci.yml) [![PyPI](https://img.shields.io/pypi/v/debugbrief)](https://pypi.org/project/debugbrief/)
34
+
35
+ Turn a debugging session into an honest markdown brief for a PR, a handoff, or an
36
+ incident note.
37
+
38
+ You record notes and run commands through DebugBrief while you work. When you are
39
+ done, it writes a report built only from what actually happened: what you tried,
40
+ what failed, what then passed, and which files changed in between. It never
41
+ invents a root cause and never claims a test result you did not get.
42
+
43
+ It is local-first and dependency-free: standard library plus native `git`, no
44
+ network, no AI, no telemetry. Unix-like systems only.
45
+
46
+ See a real generated report: [examples/sample-pr.md](examples/sample-pr.md).
47
+
48
+ ## Install
49
+
50
+ ```bash
51
+ pip install debugbrief
52
+ ```
53
+
54
+ Or from a clone: `pip install -e .`. Needs Python 3.9+ and native `git` on a
55
+ Unix-like system (Linux, macOS, BSD).
56
+
57
+ ## Quickstart
58
+
59
+ ```bash
60
+ debugbrief start "Fix add() returning wrong result"
61
+ debugbrief note "add() subtracts instead of adds; the test expects 5."
62
+ debugbrief run -- python -m pytest -q test_calc.py # fails
63
+ # ... make your fix ...
64
+ debugbrief redo # same test again: passes
65
+ debugbrief end # writes the pr-style brief
66
+ ```
67
+
68
+ Everything after `--` runs exactly as you typed it, with its output streaming
69
+ live to your terminal; DebugBrief flags (`--timeout`, `--shell`, `--no-redact`)
70
+ go before the `--`. Quoting the whole command also works: `debugbrief run
71
+ "pytest -q"`. `redo` re-runs the last captured command, and `end` defaults to
72
+ the `pr` report mode.
73
+
74
+ Tip: a one-line alias makes the capture prefix disappear in daily use:
75
+
76
+ ```bash
77
+ alias db="debugbrief run --"
78
+ db pytest -q
79
+ ```
80
+
81
+ `run` and `note` auto-start a session if you forget to, so a capture is never
82
+ lost (and `debugbrief cancel` discards a session you did not mean to start).
83
+ The resulting report leads with a derived one-liner like:
84
+
85
+ > Failing check `python -m pytest -q test_calc.py` passed after 2 attempts over
86
+ > 2s, changes touched calc.py.
87
+
88
+ ## How it works
89
+
90
+ - `run` executes a command, records its real exit code, bounded output, duration,
91
+ and a per-command git snapshot, then returns the command's own exit code.
92
+ - Pass/fail comes only from the exit code. A command counts as "verified" only if
93
+ a recognized test/build/lint/typecheck command actually exited `0`.
94
+ - `end` derives the report from those events: the red-to-green window, the
95
+ reproduce/verify commands, a timeline, the observed error verbatim, and what
96
+ was ruled out. Empty sections are omitted, never padded.
97
+ - Secret-like values in captured output are replaced with `[redacted]` before
98
+ anything is written to disk (best effort; `--no-redact` opts out).
99
+
100
+ ## Commands
101
+
102
+ | Command | What it does |
103
+ | --- | --- |
104
+ | `start "<title>"` | Start a session |
105
+ | `note <text ...>` | Record a note (quoting optional) |
106
+ | `run -- <command ...>` | Execute and capture a command |
107
+ | `redo` | Re-run the last captured command |
108
+ | `end [--mode pr\|handoff\|incident]` | Finalize and write a report (default `pr`) |
109
+ | `cancel [--yes]` | Discard the active session, no report |
110
+ | `status` | Show the active session |
111
+ | `doctor [--fix]` | Health-check the project and state |
112
+ | `last` / `open` | Find or open the most recent report |
113
+ | `list` / `show <id>` | Browse recorded sessions |
114
+
115
+ Full detail, flags, and the report modes: [docs/COMMANDS.md](docs/COMMANDS.md).
116
+
117
+ Post a brief straight to a PR (GitHub CLI optional):
118
+
119
+ ```bash
120
+ debugbrief end --stdout | gh pr comment --body-file -
121
+ ```
122
+
123
+ ## Limitations
124
+
125
+ - Unix-like only; no Windows/PowerShell.
126
+ - Capture is explicit via `debugbrief run`. There is no terminal transcript or
127
+ PTY capture, and output is stored as bounded previews, not full logs.
128
+ - Interactive and TUI commands (a pdb session, watch modes) will behave oddly
129
+ under `run`, because output is piped for capture rather than attached to a
130
+ terminal. Run those directly and record the outcome with `note`.
131
+ - Redaction is conservative and best effort; it does not catch every secret.
132
+ - Git sections need native `git`; outside a repo they are omitted honestly.
133
+
134
+ ## Development
135
+
136
+ ```bash
137
+ pip install -e ".[dev]"
138
+ pytest
139
+ ```
140
+
141
+ ## License
142
+
143
+ MIT. See [LICENSE](LICENSE).
@@ -0,0 +1,26 @@
1
+ debugbrief/__init__.py,sha256=U9RXSNXRZ49hiVPylXip9GMykmJT-hqL-g5lC2fTrp8,473
2
+ debugbrief/__main__.py,sha256=r_zGncmcu79lLoxJ8MFvmmi4I-wZekC_bbXNdzntZgw,178
3
+ debugbrief/cli.py,sha256=sITP8IaBxYGxVpYb7NG65pdfK6Q03bVswOvGQGER1aY,29139
4
+ debugbrief/command_runner.py,sha256=fGq_-7akgmYZU5nGKINa57EaWuK3xwK6GPaTtDv0Ank,7721
5
+ debugbrief/derive.py,sha256=Xs1PCRG65G6jdpORx6Ga4jG_NcUJN4okjnYfFewYk9s,10965
6
+ debugbrief/doctor.py,sha256=_9Xb9NUx0j66nqcXKBT9xDmGayWS-xyXRjr16oAM9FE,9820
7
+ debugbrief/filters.py,sha256=1z8e1_vokfsiV2Q5VIIKSkK9Q0Hz7gg2D36rQlMNgKg,8805
8
+ debugbrief/git_utils.py,sha256=tuvBMg4vUgSpXvEZY0JK7sIgAlf-QaZULu-u8KnY5HM,8522
9
+ debugbrief/models.py,sha256=o_Ir4Bfa-BWa6-eW8tptDEiVUFjb4jPAUSXp6JkFHSU,11253
10
+ debugbrief/paths.py,sha256=Yd6L6zqQ5bOn5-DdAeJLj2h0bfiloE1MzstlcYGe1N4,4723
11
+ debugbrief/redaction.py,sha256=sdMy7y_duJKLYIBvJQahMuGD4539XyJtvOAm75WQH4w,3983
12
+ debugbrief/reports_index.py,sha256=eOq6G6scfaSyIa2GdJKVYZg1kTBQp_ejZvLBWWldOZI,1620
13
+ debugbrief/session_manager.py,sha256=BszIqTWOeQVlZRw3Ejj7L2N873hfr7LhUV_S-sHfKuA,14098
14
+ debugbrief/sessions_index.py,sha256=4jSFo09MGOl_TeDcM5Bh71lppV8z4g8pHULVmuOOZPo,2557
15
+ debugbrief/utils.py,sha256=8x4lcapsB6yNLgY9KJZFUl-QTUX2pba4yR5DVi7Ocxs,5069
16
+ debugbrief/reporters/__init__.py,sha256=ZT9GYK1WaqMTvbZeZEq-QXlQKX36W5qkRrYSYhhJzJA,3586
17
+ debugbrief/reporters/base.py,sha256=0pavQeRbMWKdwMINOW70X8NP8MTRpGbKRne8SBjxu2w,13918
18
+ debugbrief/reporters/handoff.py,sha256=Ff5j97Icg4_I84t_j_YLL078NCkOWyyHL28_xhl4zMs,3180
19
+ debugbrief/reporters/incident.py,sha256=hWH2q2QbS8FWkejBedECwFGfXLbEn-EbQ2Kz12RcW4o,3433
20
+ debugbrief/reporters/pr.py,sha256=clXcCMgm9ps2rwLSiBWwRLlsE8tNSwnnuh7PHNqGLEQ,870
21
+ debugbrief-1.1.0.dist-info/licenses/LICENSE,sha256=eYmMPl8GglBY7HLqF8591XUvqzp3EtNaHY7Jo9Xo_EE,1080
22
+ debugbrief-1.1.0.dist-info/METADATA,sha256=F1MVmjY-g2MgnYTEN4Y8PijU84gKN_XdfH4EpDXgmxY,5692
23
+ debugbrief-1.1.0.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
24
+ debugbrief-1.1.0.dist-info/entry_points.txt,sha256=mRboPZabHVUMrsoRSP03A4NG-tp9nHs9kkZn3cV0rZg,51
25
+ debugbrief-1.1.0.dist-info/top_level.txt,sha256=gAmlNjTo8vXktM46tvqQjwMrZ0YMzhTir-abiNLkmes,11
26
+ debugbrief-1.1.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (82.0.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ debugbrief = debugbrief.cli:main
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 DebugBrief contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ debugbrief