opencode-llmstack 0.9.3__tar.gz → 0.9.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/CHANGELOG.md +15 -0
- {opencode_llmstack-0.9.3/opencode_llmstack.egg-info → opencode_llmstack-0.9.4}/PKG-INFO +1 -1
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/__init__.py +1 -1
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/app.py +3 -2
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4/opencode_llmstack.egg-info}/PKG-INFO +1 -1
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/pyproject.toml +1 -1
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/LICENSE +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/README.md +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/UPGRADING.md +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/AGENTS.md +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/__main__.py +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/_platform.py +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/backends/__init__.py +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/backends/bedrock.py +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/check_models.py +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/cli.py +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/commands/__init__.py +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/commands/_helpers.py +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/commands/activate.py +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/commands/check.py +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/commands/download.py +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/commands/install.py +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/commands/install_llama_swap.py +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/commands/reload.py +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/commands/restart.py +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/commands/setup.py +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/commands/start.py +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/commands/status.py +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/commands/stop.py +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/download/__init__.py +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/download/binary.py +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/download/ggufs.py +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/generators/__init__.py +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/generators/llama_swap.py +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/generators/opencode.py +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/models.ini +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/paths.py +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/shell_env.py +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/llmstack/tiers.py +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/opencode_llmstack.egg-info/SOURCES.txt +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/opencode_llmstack.egg-info/dependency_links.txt +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/opencode_llmstack.egg-info/entry_points.txt +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/opencode_llmstack.egg-info/requires.txt +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/opencode_llmstack.egg-info/top_level.txt +0 -0
- {opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/setup.cfg +0 -0
|
@@ -4,6 +4,21 @@ All notable changes to `opencode-llmstack` are documented here.
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
## [0.9.4] — 2026-05-11
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
- `classify()` now scopes `has_code_signal` to the **last user message only**
|
|
11
|
+
(was scanning the full conversation history). Previously, any prior coding
|
|
12
|
+
exchange in the session (code blocks, agent verbs) would permanently block
|
|
13
|
+
plan routing for the rest of the conversation — e.g. "explain why these
|
|
14
|
+
changes are important?" after a refactor request would never reach `plan`.
|
|
15
|
+
- Added regression test:
|
|
16
|
+
`test_plan_signal_after_prior_coding_exchange_routes_to_plan`.
|
|
17
|
+
- `__version__` corrected from `"0.9.2"` to `"0.9.4"` (was skewed vs
|
|
18
|
+
`pyproject.toml` since 0.9.3).
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
7
22
|
## [0.9.2] — 2026-05-11
|
|
8
23
|
|
|
9
24
|
### Fixed
|
|
@@ -355,9 +355,10 @@ def classify(body: dict[str, Any]) -> tuple[str, str]:
|
|
|
355
355
|
return AGENT_MODEL, f"ultra-trigger->agent ({ULTRA_MODEL} unavailable)"
|
|
356
356
|
|
|
357
357
|
n_turns = sum(1 for m in (messages or []) if m.get("role") == "user")
|
|
358
|
+
_last_msgs = [{"role": "user", "content": last_user}] if last_user else None
|
|
358
359
|
has_code_signal = (
|
|
359
|
-
_matches(CODE_BLOCK,
|
|
360
|
-
or _matches(AGENT_SIGNALS,
|
|
360
|
+
_matches(CODE_BLOCK, _last_msgs, prompt)
|
|
361
|
+
or _matches(AGENT_SIGNALS, _last_msgs, prompt)
|
|
361
362
|
)
|
|
362
363
|
|
|
363
364
|
est = _estimate_tokens(messages, prompt)
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "opencode-llmstack"
|
|
7
|
-
version = "0.9.
|
|
7
|
+
version = "0.9.4"
|
|
8
8
|
description = "Multi-tier local LLM stack: llama-swap + FastAPI auto-router + opencode wiring."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.11"
|
|
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
|
|
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
|
{opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/opencode_llmstack.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/opencode_llmstack.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
{opencode_llmstack-0.9.3 → opencode_llmstack-0.9.4}/opencode_llmstack.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|