regcode 0.8.0__tar.gz → 0.9.0__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.
- {regcode-0.8.0 → regcode-0.9.0}/.gitignore +3 -1
- {regcode-0.8.0 → regcode-0.9.0}/GOALS.md +11 -6
- {regcode-0.8.0 → regcode-0.9.0}/PKG-INFO +2 -1
- {regcode-0.8.0 → regcode-0.9.0}/pyproject.toml +2 -1
- {regcode-0.8.0 → regcode-0.9.0}/regcode/__init__.py +1 -1
- {regcode-0.8.0 → regcode-0.9.0}/regcode/main.py +412 -510
- {regcode-0.8.0 → regcode-0.9.0}/regcode/tui.py +68 -52
- {regcode-0.8.0 → regcode-0.9.0}/uv.lock +52 -1
- {regcode-0.8.0 → regcode-0.9.0}/.gitlab-ci.yml +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/.python-version +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/.qwen/settings.json +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/AGENTS.md +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/README.md +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/config.yaml.template +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/main.py +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/regcode/cli.py +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/regcode/clipboard.py +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/regcode/config.py +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/regcode/conversation_manager.py +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/regcode/dependencies.py +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/regcode/monty_sandbox.py +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/regcode/paste.py +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/regcode/permissions.py +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/regcode/sandbox.py +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/regcode/tools/__init__.py +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/regcode/tools/base.py +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/regcode/tools/builtins.py +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/regcode/tools/registry.py +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/regcode/tools/review_notes.py +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/regcode/tools/web_crawl.py +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/regcode/tools/web_search.py +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/regcode/tracing.py +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/tests/__init__.py +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/tests/conftest.py +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/tests/test_api.py +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/tests/test_cli.py +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/tests/test_clipboard.py +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/tests/test_config.py +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/tests/test_context_manager.py +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/tests/test_dependencies.py +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/tests/test_main.py +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/tests/test_monty_sandbox.py +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/tests/test_osv_cve.py +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/tests/test_provider_extra.py +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/tests/test_review_notes.py +0 -0
- {regcode-0.8.0 → regcode-0.9.0}/tests/test_web_search.py +0 -0
|
@@ -530,10 +530,15 @@ All phases complete. 50/50 tests passing. Lint clean.
|
|
|
530
530
|
|
|
531
531
|
## Completed (2026-06-30 — TUI rewrite)
|
|
532
532
|
|
|
533
|
-
|
|
533
|
+
## Completed (2026-07-05)
|
|
534
534
|
|
|
535
|
-
1. ✅
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
535
|
+
1. ✅ **Agent loop rewrite** — `Agent.chat()` completely rewritten following `debug.ipynb` pattern. Key changes:
|
|
536
|
+
- Extracted `_chat_loop()` for non-streaming mode, `_stream()` for streaming — both use shared `_execute_tool_calls()` helper (eliminating ~300 lines of duplicated tool execution code).
|
|
537
|
+
- Added `on_message` callback parameter: called after every LLM call with the assistant's text content BEFORE tool results are shown. This fixes the broken chain where "Let me search" was never displayed — the user now sees it in real-time as tools execute.
|
|
538
|
+
- Fixed `_stream()`: removed `full_text = ""` reset at each iteration (was wiping previously accumulated text). Now `full_text` accumulates across ALL iterations so the user sees the complete conversation.
|
|
539
|
+
- Fixed `_chat_loop` loop bound: was using `self.config.tool_budget` (default 20) instead of `max_tool_calls` (default 10), causing excessive LLM calls. Now properly bounded by `max_tool_calls`.
|
|
540
|
+
- When `finish_reason == "stop"` or text + no tools, loop breaks immediately — no more dead-end loop iterations.
|
|
541
|
+
|
|
542
|
+
2. ✅ **TUI integration** — `_run_agent_sync()` and `_run_agent_multimodal()` now pass `on_message` callback to `agent.chat()`. The callback inserts each assistant text response directly into the chat area via `call_from_thread(self._insert_rich, text)`, so the user sees intermediate thinking ("Let me search the internet...") BEFORE tool execution markers appear. This makes the agent feel alive and responsive instead of silent during multi-tool chains.
|
|
543
|
+
|
|
544
|
+
3. ✅ **All 193 tests pass, lint clean.**
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: regcode
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.9.0
|
|
4
4
|
Summary: Minimalistic coding agent with Python API and CLI
|
|
5
5
|
Requires-Python: >=3.10
|
|
6
|
+
Requires-Dist: boto3>=1.43.40
|
|
6
7
|
Requires-Dist: click>=8.0
|
|
7
8
|
Requires-Dist: crawl4ai>=0.4.0
|
|
8
9
|
Requires-Dist: litellm>=1.83.17
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "regcode"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.9.0"
|
|
4
4
|
description = "Minimalistic coding agent with Python API and CLI"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.10"
|
|
@@ -17,6 +17,7 @@ dependencies = [
|
|
|
17
17
|
"textual>=2.0.0",
|
|
18
18
|
"pathspec>=1.1.1",
|
|
19
19
|
"pyperclip>=1.9.0",
|
|
20
|
+
"boto3>=1.43.40",
|
|
20
21
|
]
|
|
21
22
|
|
|
22
23
|
[project.scripts]
|