diff --git a/CHANGELOG.md b/CHANGELOG.md index a4f810f..6002af2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,63 @@ All notable changes to `simplicio-prompt` are documented here. Format roughly follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versioning is [SemVer](https://semver.org/). +## [1.11.0] — 2026-05-29 — Phase 1 + integration + infra + +Roadmap **Phase 1 (Diverse-prompt fan-out)** kernel-side delivery plus the +tech-debt and infrastructure work that landed alongside it. All new +runtime parameters are opt-in; defaults preserve the 1.10.x behavior +bit-for-bit, so this is a semver-safe minor bump. + +### Added +- **`kernel.diversifier`** (Phase 1) — `Persona`, `PromptDiversifier`, and + `make_diversified_prompt_builder` for deterministic persona-based prompt + variants. 4 framings × 3 emphases × 3 host-code stances = 36 unique + combinations; for N > 36, base personas cycle with a rotation counter + folded into the slug so the input bytes still differ on every pass. + Closes #29 (kernel side; output-side validation pending bench in + `simplicio-dev-cli`). +- **`SubagentRuntime.run(diversify=True, diversify_seed=0)`** — opt-in + flag that wraps the prompt builder so each subagent's `system` message + is prepended with a unique persona directive. The `prompt` field stays + intact, so structured contracts (e.g. simplicio-cli `[CLI-6LAYER]`) + compose cleanly. +- **`SubagentRuntime.run(overall_timeout_s=...)`** — global wall-clock + timeout for the entire fan-out. Env-var fallback + `YOOL_TUPLE_OVERALL_TIMEOUT_S`. Closes #35. +- **`FanoutReport.status`** — `"ok"` | `"timeout"`. Carried through + `to_dict()` and `format_summary()` (`[TIMEOUT]` prefix when not ok). +- **CLI flags:** `--diversify`, `--diversify-seed`, `--overall-timeout-s`. +- **`tests/test_diversifier.py`** — 22 tests pinning slug format, + rotation, base catalog completeness, n=1/36/37/200 sizes, determinism, + seed permutation, wrapped-builder semantics, empty-system handling. +- **`tests/targets.test.mjs`** — 13 unit tests blindando the multi-IDE + plugin registry (`plugins/targets.mjs`). Closes #36. +- **`benchmarks/diversifier_benchmark.py`** — input-side uniqueness lift + measurement (200x in the realistic static-contract case). +- **`.github/workflows/tests.yml`** + **`.github/workflows/release.yml`** — + matrix CI (Python 3.10/3.11/3.12) on push/PR, and a tag-driven release + pipeline that does the cross-version check + PyPI/npm publish + smoke + verify automatically. Closes #33. +- **`CONTRIBUTING.md`** — canonical local-dev, release, and prompt-edit + flow. Closes #38. + +### Changed +- **`kernel/utils` is now actually wired into the runtime hot paths**: + - `kernel/yool_tuple_kernel.py::ReceiptCache` consolidated into + `kernel/utils/cache.py::TTLCache` (BC alias preserved). + - `kernel/yool_tuple_kernel.py::_stable_digest` delegates to + `kernel.utils.serialization.stable_digest`. + - `kernel/providers.py` JSON I/O routes through + `kernel.utils.serialization.{dumps_bytes, loads}` — `pip install orjson` + now silently accelerates the runtime. Closes #32. + +### Fixed +- **`bin/simplicio-prompt.mjs::loadVersion`** no longer silently returns + `"0.0.0"` on corrupted `package.json`; it logs the reason to stderr + before falling back. Top-level catch falls through `e.message || + String(e)` so non-Error throws never print the literal `"undefined"`. + Closes #37. + ## [1.10.1] — 2026-05-29 — Phase 0: ONE-SHOT template hygiene Roadmap **Phase 0 (Hygiene + repositioning)** — see `Roadmap to v2.0` in the diff --git a/kernel/__init__.py b/kernel/__init__.py index 7044121..5a83f57 100644 --- a/kernel/__init__.py +++ b/kernel/__init__.py @@ -7,4 +7,4 @@ ``batch_spawn`` model into real subagents. """ -__version__ = "1.10.1" +__version__ = "1.11.0" diff --git a/package.json b/package.json index a1fd4dd..4749bda 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "simplicio-prompt", - "version": "1.10.1", + "version": "1.11.0", "description": "Multi-IDE plugin: Tuple-Space + Yool safe-speed runtime prompt for Claude Code, Codex, Hermes, OpenCode/OpenClaw, Cursor, GitHub Copilot, Cline, Aider, Gemini CLI. One installer drops the runtime contract into the right rule file for each agent; the Claude Code plugin ships a UserPromptSubmit hook for always-on invocation. Includes a dependency-free Python runtime for real subagents on DeepSeek / MiMo / OpenRouter / local LLMs plus PromptFanout adapters and token/cost observability.", "type": "module", "main": "./index.mjs", diff --git a/pyproject.toml b/pyproject.toml index d43ccbc..28167b8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "simplicio-prompt" -version = "1.10.1" +version = "1.11.0" description = "Tuple-Space + Yool safe-speed runtime kernel: lazy 1,000,000+ subagent batch_spawn, adaptive lane concurrency, and a dependency-free OpenAI-compatible provider client for real subagents on DeepSeek / MiMo / OpenRouter / local LLMs." readme = "README.md" requires-python = ">=3.8"