git-oops 1.0.3__tar.gz → 1.0.3.post1__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 (69) hide show
  1. {git_oops-1.0.3 → git_oops-1.0.3.post1}/PKG-INFO +3 -3
  2. {git_oops-1.0.3 → git_oops-1.0.3.post1}/README.md +2 -2
  3. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops/__init__.py +2 -2
  4. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops/cli.py +6 -5
  5. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops.egg-info/PKG-INFO +3 -3
  6. {git_oops-1.0.3 → git_oops-1.0.3.post1}/pyproject.toml +1 -1
  7. {git_oops-1.0.3 → git_oops-1.0.3.post1}/setup.py +1 -1
  8. {git_oops-1.0.3 → git_oops-1.0.3.post1}/src/__init__.py +2 -2
  9. {git_oops-1.0.3 → git_oops-1.0.3.post1}/src/cli.py +6 -5
  10. {git_oops-1.0.3 → git_oops-1.0.3.post1}/tests/test_auto_updater.py +24 -0
  11. {git_oops-1.0.3 → git_oops-1.0.3.post1}/LICENSE +0 -0
  12. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops/__main__.py +0 -0
  13. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops/blackbox.py +0 -0
  14. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops/circuit_breaker.py +0 -0
  15. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops/consensus.py +0 -0
  16. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops/engine.py +0 -0
  17. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops/firewall.py +0 -0
  18. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops/guardian.py +0 -0
  19. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops/hardware.py +0 -0
  20. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops/hooks.py +0 -0
  21. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops/hud.py +0 -0
  22. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops/local_llm.py +0 -0
  23. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops/mcp_server.py +0 -0
  24. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops/replay.py +0 -0
  25. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops/reviewer.py +0 -0
  26. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops/rules.py +0 -0
  27. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops/salvage.py +0 -0
  28. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops/sentinel.py +0 -0
  29. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops/shadow.py +0 -0
  30. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops/solver.py +0 -0
  31. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops/squeezer.py +0 -0
  32. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops/supply_chain.py +0 -0
  33. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops/tester.py +0 -0
  34. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops/ui.py +0 -0
  35. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops/updater.py +0 -0
  36. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops/watchdog.py +0 -0
  37. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops.egg-info/SOURCES.txt +0 -0
  38. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops.egg-info/dependency_links.txt +0 -0
  39. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops.egg-info/entry_points.txt +0 -0
  40. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops.egg-info/requires.txt +0 -0
  41. {git_oops-1.0.3 → git_oops-1.0.3.post1}/git_oops.egg-info/top_level.txt +0 -0
  42. {git_oops-1.0.3 → git_oops-1.0.3.post1}/setup.cfg +0 -0
  43. {git_oops-1.0.3 → git_oops-1.0.3.post1}/src/blackbox.py +0 -0
  44. {git_oops-1.0.3 → git_oops-1.0.3.post1}/src/circuit_breaker.py +0 -0
  45. {git_oops-1.0.3 → git_oops-1.0.3.post1}/src/consensus.py +0 -0
  46. {git_oops-1.0.3 → git_oops-1.0.3.post1}/src/engine.py +0 -0
  47. {git_oops-1.0.3 → git_oops-1.0.3.post1}/src/firewall.py +0 -0
  48. {git_oops-1.0.3 → git_oops-1.0.3.post1}/src/guardian.py +0 -0
  49. {git_oops-1.0.3 → git_oops-1.0.3.post1}/src/hardware.py +0 -0
  50. {git_oops-1.0.3 → git_oops-1.0.3.post1}/src/hooks.py +0 -0
  51. {git_oops-1.0.3 → git_oops-1.0.3.post1}/src/hud.py +0 -0
  52. {git_oops-1.0.3 → git_oops-1.0.3.post1}/src/local_llm.py +0 -0
  53. {git_oops-1.0.3 → git_oops-1.0.3.post1}/src/mcp_server.py +0 -0
  54. {git_oops-1.0.3 → git_oops-1.0.3.post1}/src/replay.py +0 -0
  55. {git_oops-1.0.3 → git_oops-1.0.3.post1}/src/reviewer.py +0 -0
  56. {git_oops-1.0.3 → git_oops-1.0.3.post1}/src/rules.py +0 -0
  57. {git_oops-1.0.3 → git_oops-1.0.3.post1}/src/salvage.py +0 -0
  58. {git_oops-1.0.3 → git_oops-1.0.3.post1}/src/sentinel.py +0 -0
  59. {git_oops-1.0.3 → git_oops-1.0.3.post1}/src/shadow.py +0 -0
  60. {git_oops-1.0.3 → git_oops-1.0.3.post1}/src/solver.py +0 -0
  61. {git_oops-1.0.3 → git_oops-1.0.3.post1}/src/squeezer.py +0 -0
  62. {git_oops-1.0.3 → git_oops-1.0.3.post1}/src/supply_chain.py +0 -0
  63. {git_oops-1.0.3 → git_oops-1.0.3.post1}/src/tester.py +0 -0
  64. {git_oops-1.0.3 → git_oops-1.0.3.post1}/src/ui.py +0 -0
  65. {git_oops-1.0.3 → git_oops-1.0.3.post1}/src/updater.py +0 -0
  66. {git_oops-1.0.3 → git_oops-1.0.3.post1}/src/watchdog.py +0 -0
  67. {git_oops-1.0.3 → git_oops-1.0.3.post1}/tests/test_agent_harness.py +0 -0
  68. {git_oops-1.0.3 → git_oops-1.0.3.post1}/tests/test_oops.py +0 -0
  69. {git_oops-1.0.3 → git_oops-1.0.3.post1}/tests/test_v1_legend.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: git-oops
3
- Version: 1.0.3
3
+ Version: 1.0.3.post1
4
4
  Summary: The Dual-Mode Terminal Crash Fixer & Autonomous AI Agent Safety Harness (The Final Legend Edition).
5
5
  Author: Hao
6
6
  License-Expression: MIT
@@ -19,7 +19,7 @@ Dynamic: requires-python
19
19
 
20
20
  <div align="center">
21
21
 
22
- # ⚡ git-oops v1.0.3 (The Final Legend Edition)
22
+ # ⚡ git-oops v1.0.3.post1 (The Final Legend Edition)
23
23
 
24
24
  ### *The Zero-Step Autonomous AI Agent Safety Harness & Terminal Crash Interceptor.*
25
25
  **Human Mode: Roasted by a Staff Engineer │ Agent Mode: The Headless Shield for Coding Agents**
@@ -27,7 +27,7 @@ Dynamic: requires-python
27
27
  ![git-oops Hero Banner](https://raw.githubusercontent.com/Hao610/git-oops/main/assets/readme-hero.jpg)
28
28
 
29
29
  [![CI Suite](https://github.com/Hao610/git-oops/actions/workflows/ci.yml/badge.svg)](https://github.com/Hao610/git-oops/actions/workflows/ci.yml)
30
- [![Version](https://img.shields.io/badge/Release-v1.0.3%20Legend-blue.svg)](https://github.com/Hao610/git-oops/releases)
30
+ [![Version](https://img.shields.io/badge/Release-v1.0.3.post1%20Legend-blue.svg)](https://github.com/Hao610/git-oops/releases)
31
31
  [![Auto-Updater](https://img.shields.io/badge/Auto--Updater-Autonomous%20Zero--Touch-blue)](https://github.com/Hao610/git-oops)
32
32
  [![PyPI](https://img.shields.io/pypi/v/git-oops.svg?color=blue)](https://pypi.org/project/git-oops/)
33
33
  [![Provenance](https://img.shields.io/badge/SLSA-Verified%20Provenance-brightgreen)](https://pypi.org/project/git-oops/)
@@ -1,6 +1,6 @@
1
1
  <div align="center">
2
2
 
3
- # ⚡ git-oops v1.0.3 (The Final Legend Edition)
3
+ # ⚡ git-oops v1.0.3.post1 (The Final Legend Edition)
4
4
 
5
5
  ### *The Zero-Step Autonomous AI Agent Safety Harness & Terminal Crash Interceptor.*
6
6
  **Human Mode: Roasted by a Staff Engineer │ Agent Mode: The Headless Shield for Coding Agents**
@@ -8,7 +8,7 @@
8
8
  ![git-oops Hero Banner](https://raw.githubusercontent.com/Hao610/git-oops/main/assets/readme-hero.jpg)
9
9
 
10
10
  [![CI Suite](https://github.com/Hao610/git-oops/actions/workflows/ci.yml/badge.svg)](https://github.com/Hao610/git-oops/actions/workflows/ci.yml)
11
- [![Version](https://img.shields.io/badge/Release-v1.0.3%20Legend-blue.svg)](https://github.com/Hao610/git-oops/releases)
11
+ [![Version](https://img.shields.io/badge/Release-v1.0.3.post1%20Legend-blue.svg)](https://github.com/Hao610/git-oops/releases)
12
12
  [![Auto-Updater](https://img.shields.io/badge/Auto--Updater-Autonomous%20Zero--Touch-blue)](https://github.com/Hao610/git-oops)
13
13
  [![PyPI](https://img.shields.io/pypi/v/git-oops.svg?color=blue)](https://pypi.org/project/git-oops/)
14
14
  [![Provenance](https://img.shields.io/badge/SLSA-Verified%20Provenance-brightgreen)](https://pypi.org/project/git-oops/)
@@ -1,9 +1,9 @@
1
1
  """
2
2
  git-oops: The Autonomous Terminal Crash Fixer & AI Agent Safety Harness.
3
- Version 1.0.3 (The Final Legend Edition)
3
+ Version 1.0.3.post1 (The Final Legend Edition)
4
4
  """
5
5
 
6
- __version__ = "1.0.3"
6
+ __version__ = "1.0.3.post1"
7
7
 
8
8
  from git_oops.hooks import ensure_auto_hooks
9
9
  from git_oops.rules import trigger_ota_update_background
@@ -68,6 +68,7 @@ def main():
68
68
  prog="git-oops",
69
69
  description="Brutally honest terminal crash fixer with daily spend-protection circuit breaker."
70
70
  )
71
+ parser.add_argument("-v", "--version", action="version", version="git-oops v1.0.3.post1 (The Final Legend Edition)")
71
72
  parser.add_argument("-f", "--file", help="Path to the file that crashed", default=None)
72
73
  parser.add_argument("-e", "--error", help="Error message or traceback string", default=None)
73
74
  parser.add_argument("-b", "--budget", help="Daily API spend ceiling in USD (default: $1.00)", type=float, default=saved_cfg.get("daily_budget", 1.0))
@@ -75,11 +76,11 @@ def main():
75
76
  parser.add_argument("--set-personality", help="Permanently save default roast persona", choices=["staff", "kernel", "chef", "passive_aggressive"])
76
77
  parser.add_argument("--set-budget", help="Permanently save default daily spend budget in USD", type=float)
77
78
  parser.add_argument("-y", "--yes", help="Auto-apply patch without interactive prompt", action="store_true")
78
- parser.add_argument("--undo", help="Roll back the last applied patch on target file", default=None)
79
- parser.add_argument("--run", help="Execute a command and auto-catch its crash (e.g. --run 'python app.py')", default=None)
80
- parser.add_argument("--status", help="Show today's accumulated API spend", action="store_true")
81
- parser.add_argument("--agent", "--json", dest="agent_mode", help="Headless Agent mode: emits machine-readable JSON without ANSI codes", action="store_true")
82
- parser.add_argument("--mcp", help="Start git-oops as a native Model Context Protocol (MCP) server over stdio", action="store_true")
79
+ parser.add_argument("-u", "--undo", help="Roll back the last applied patch on target file", default=None)
80
+ parser.add_argument("-r", "--run", help="Execute a command and auto-catch its crash (e.g. -r 'python app.py')", default=None)
81
+ parser.add_argument("-s", "--status", help="Show today's accumulated API spend", action="store_true")
82
+ parser.add_argument("-a", "--agent", "--json", dest="agent_mode", help="Headless Agent mode: emits machine-readable JSON without ANSI codes", action="store_true")
83
+ parser.add_argument("-m", "--mcp", help="Start git-oops as a native Model Context Protocol (MCP) server over stdio", action="store_true")
83
84
  parser.add_argument("--rewind", help="Flight Recorder: rewind codebase to a previous step ID", type=int, default=None)
84
85
  parser.add_argument("--flight-log", help="Display recent blackbox flight recorder steps", action="store_true")
85
86
  parser.add_argument("--shadow", help="Run repair verification inside an isolated temporary shadow workspace", action="store_true")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: git-oops
3
- Version: 1.0.3
3
+ Version: 1.0.3.post1
4
4
  Summary: The Dual-Mode Terminal Crash Fixer & Autonomous AI Agent Safety Harness (The Final Legend Edition).
5
5
  Author: Hao
6
6
  License-Expression: MIT
@@ -19,7 +19,7 @@ Dynamic: requires-python
19
19
 
20
20
  <div align="center">
21
21
 
22
- # ⚡ git-oops v1.0.3 (The Final Legend Edition)
22
+ # ⚡ git-oops v1.0.3.post1 (The Final Legend Edition)
23
23
 
24
24
  ### *The Zero-Step Autonomous AI Agent Safety Harness & Terminal Crash Interceptor.*
25
25
  **Human Mode: Roasted by a Staff Engineer │ Agent Mode: The Headless Shield for Coding Agents**
@@ -27,7 +27,7 @@ Dynamic: requires-python
27
27
  ![git-oops Hero Banner](https://raw.githubusercontent.com/Hao610/git-oops/main/assets/readme-hero.jpg)
28
28
 
29
29
  [![CI Suite](https://github.com/Hao610/git-oops/actions/workflows/ci.yml/badge.svg)](https://github.com/Hao610/git-oops/actions/workflows/ci.yml)
30
- [![Version](https://img.shields.io/badge/Release-v1.0.3%20Legend-blue.svg)](https://github.com/Hao610/git-oops/releases)
30
+ [![Version](https://img.shields.io/badge/Release-v1.0.3.post1%20Legend-blue.svg)](https://github.com/Hao610/git-oops/releases)
31
31
  [![Auto-Updater](https://img.shields.io/badge/Auto--Updater-Autonomous%20Zero--Touch-blue)](https://github.com/Hao610/git-oops)
32
32
  [![PyPI](https://img.shields.io/pypi/v/git-oops.svg?color=blue)](https://pypi.org/project/git-oops/)
33
33
  [![Provenance](https://img.shields.io/badge/SLSA-Verified%20Provenance-brightgreen)](https://pypi.org/project/git-oops/)
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "git-oops"
7
- version = "1.0.3"
7
+ version = "1.0.3.post1"
8
8
  description = "The Dual-Mode Terminal Crash Fixer & Autonomous AI Agent Safety Harness (The Final Legend Edition)."
9
9
  readme = "README.md"
10
10
  authors = [{ name = "Hao" }]
@@ -6,7 +6,7 @@ except ImportError:
6
6
 
7
7
  setup(
8
8
  name="git-oops",
9
- version="1.0.3",
9
+ version="1.0.3.post1",
10
10
  description="The Dual-Mode Terminal Crash Fixer & Autonomous AI Agent Safety Harness (The Final Legend Edition).",
11
11
  author="Hao",
12
12
  packages=find_packages(),
@@ -1,9 +1,9 @@
1
1
  """
2
2
  git-oops: The Autonomous Terminal Crash Fixer & AI Agent Safety Harness.
3
- Version 1.0.3 (The Final Legend Edition)
3
+ Version 1.0.3.post1 (The Final Legend Edition)
4
4
  """
5
5
 
6
- __version__ = "1.0.3"
6
+ __version__ = "1.0.3.post1"
7
7
 
8
8
  from src.hooks import ensure_auto_hooks
9
9
  from src.rules import trigger_ota_update_background
@@ -68,6 +68,7 @@ def main():
68
68
  prog="git-oops",
69
69
  description="Brutally honest terminal crash fixer with daily spend-protection circuit breaker."
70
70
  )
71
+ parser.add_argument("-v", "--version", action="version", version="git-oops v1.0.3.post1 (The Final Legend Edition)")
71
72
  parser.add_argument("-f", "--file", help="Path to the file that crashed", default=None)
72
73
  parser.add_argument("-e", "--error", help="Error message or traceback string", default=None)
73
74
  parser.add_argument("-b", "--budget", help="Daily API spend ceiling in USD (default: $1.00)", type=float, default=saved_cfg.get("daily_budget", 1.0))
@@ -75,11 +76,11 @@ def main():
75
76
  parser.add_argument("--set-personality", help="Permanently save default roast persona", choices=["staff", "kernel", "chef", "passive_aggressive"])
76
77
  parser.add_argument("--set-budget", help="Permanently save default daily spend budget in USD", type=float)
77
78
  parser.add_argument("-y", "--yes", help="Auto-apply patch without interactive prompt", action="store_true")
78
- parser.add_argument("--undo", help="Roll back the last applied patch on target file", default=None)
79
- parser.add_argument("--run", help="Execute a command and auto-catch its crash (e.g. --run 'python app.py')", default=None)
80
- parser.add_argument("--status", help="Show today's accumulated API spend", action="store_true")
81
- parser.add_argument("--agent", "--json", dest="agent_mode", help="Headless Agent mode: emits machine-readable JSON without ANSI codes", action="store_true")
82
- parser.add_argument("--mcp", help="Start git-oops as a native Model Context Protocol (MCP) server over stdio", action="store_true")
79
+ parser.add_argument("-u", "--undo", help="Roll back the last applied patch on target file", default=None)
80
+ parser.add_argument("-r", "--run", help="Execute a command and auto-catch its crash (e.g. -r 'python app.py')", default=None)
81
+ parser.add_argument("-s", "--status", help="Show today's accumulated API spend", action="store_true")
82
+ parser.add_argument("-a", "--agent", "--json", dest="agent_mode", help="Headless Agent mode: emits machine-readable JSON without ANSI codes", action="store_true")
83
+ parser.add_argument("-m", "--mcp", help="Start git-oops as a native Model Context Protocol (MCP) server over stdio", action="store_true")
83
84
  parser.add_argument("--rewind", help="Flight Recorder: rewind codebase to a previous step ID", type=int, default=None)
84
85
  parser.add_argument("--flight-log", help="Display recent blackbox flight recorder steps", action="store_true")
85
86
  parser.add_argument("--shadow", help="Run repair verification inside an isolated temporary shadow workspace", action="store_true")
@@ -45,3 +45,27 @@ def test_background_self_upgrade_non_blocking():
45
45
  trigger_background_self_upgrade()
46
46
  # Verify process is still alive and responsive
47
47
  assert True
48
+
49
+
50
+ def test_cli_version_flag():
51
+ import subprocess
52
+ out = subprocess.check_output([sys.executable, "-m", "git_oops", "--version"], text=True)
53
+ assert "git-oops v1.0.3.post1" in out
54
+
55
+
56
+ def test_cli_status_short_flag():
57
+ import subprocess
58
+ out = subprocess.check_output([sys.executable, "-m", "git_oops", "-s"], text=True)
59
+ assert "CIRCUIT BREAKER METRICS" in out
60
+
61
+
62
+ def test_cli_short_flags_registered():
63
+ import subprocess
64
+ out = subprocess.check_output([sys.executable, "-m", "git_oops", "-h"], text=True)
65
+ assert "-u UNDO" in out or "-u" in out
66
+ assert "-r RUN" in out or "-r" in out
67
+ assert "-m" in out
68
+ assert "-a" in out
69
+
70
+
71
+
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes