kaizen-3c-cli 1.0.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.
- kaizen_3c_cli-1.0.0/CHANGELOG.md +374 -0
- kaizen_3c_cli-1.0.0/LICENSE +193 -0
- kaizen_3c_cli-1.0.0/MANIFEST.in +32 -0
- kaizen_3c_cli-1.0.0/NOTICE +119 -0
- kaizen_3c_cli-1.0.0/PKG-INFO +123 -0
- kaizen_3c_cli-1.0.0/README.md +113 -0
- kaizen_3c_cli-1.0.0/README.pypi.md +77 -0
- kaizen_3c_cli-1.0.0/cli/__init__.py +2 -0
- kaizen_3c_cli-1.0.0/cli/approval.py +72 -0
- kaizen_3c_cli-1.0.0/cli/bench/__init__.py +13 -0
- kaizen_3c_cli-1.0.0/cli/bench/value_add_fingerprint.py +327 -0
- kaizen_3c_cli-1.0.0/cli/commands/__init__.py +2 -0
- kaizen_3c_cli-1.0.0/cli/commands/bench.py +333 -0
- kaizen_3c_cli-1.0.0/cli/commands/decompose.py +233 -0
- kaizen_3c_cli-1.0.0/cli/commands/demo.py +312 -0
- kaizen_3c_cli-1.0.0/cli/commands/init.py +299 -0
- kaizen_3c_cli-1.0.0/cli/commands/mcp_serve.py +116 -0
- kaizen_3c_cli-1.0.0/cli/commands/memsafe_roadmap.py +562 -0
- kaizen_3c_cli-1.0.0/cli/commands/migrate_plan.py +586 -0
- kaizen_3c_cli-1.0.0/cli/commands/priors.py +86 -0
- kaizen_3c_cli-1.0.0/cli/commands/recompose.py +234 -0
- kaizen_3c_cli-1.0.0/cli/commands/resume.py +399 -0
- kaizen_3c_cli-1.0.0/cli/commands/status.py +130 -0
- kaizen_3c_cli-1.0.0/cli/commands/web.py +104 -0
- kaizen_3c_cli-1.0.0/cli/config.py +278 -0
- kaizen_3c_cli-1.0.0/cli/demo_assets/README.md +68 -0
- kaizen_3c_cli-1.0.0/cli/demo_assets/__init__.py +2 -0
- kaizen_3c_cli-1.0.0/cli/demo_assets/slugify_demo.tar.gz +0 -0
- kaizen_3c_cli-1.0.0/cli/events.py +248 -0
- kaizen_3c_cli-1.0.0/cli/main.py +140 -0
- kaizen_3c_cli-1.0.0/cli/mcp_server/__init__.py +20 -0
- kaizen_3c_cli-1.0.0/cli/mcp_server/server.py +543 -0
- kaizen_3c_cli-1.0.0/cli/mcp_server/tests/__init__.py +0 -0
- kaizen_3c_cli-1.0.0/cli/mcp_server/tests/test_server.py +224 -0
- kaizen_3c_cli-1.0.0/cli/output.py +241 -0
- kaizen_3c_cli-1.0.0/cli/pipeline/__init__.py +9 -0
- kaizen_3c_cli-1.0.0/cli/pipeline/decompose_v2.py +746 -0
- kaizen_3c_cli-1.0.0/cli/pipeline/oneshot_baseline.py +229 -0
- kaizen_3c_cli-1.0.0/cli/pipeline/recompose_v2.py +520 -0
- kaizen_3c_cli-1.0.0/cli/pipeline/roundtrip_diff.py +126 -0
- kaizen_3c_cli-1.0.0/cli/pipeline/specialist_review.py +162 -0
- kaizen_3c_cli-1.0.0/cli/review.py +246 -0
- kaizen_3c_cli-1.0.0/cli/tests/__init__.py +0 -0
- kaizen_3c_cli-1.0.0/cli/tests/test_approval.py +182 -0
- kaizen_3c_cli-1.0.0/cli/tests/test_bench.py +261 -0
- kaizen_3c_cli-1.0.0/cli/tests/test_config.py +244 -0
- kaizen_3c_cli-1.0.0/cli/tests/test_demo.py +214 -0
- kaizen_3c_cli-1.0.0/cli/tests/test_events.py +118 -0
- kaizen_3c_cli-1.0.0/cli/tests/test_init.py +211 -0
- kaizen_3c_cli-1.0.0/cli/tests/test_resume.py +259 -0
- kaizen_3c_cli-1.0.0/cli/tests/test_review.py +333 -0
- kaizen_3c_cli-1.0.0/cli/web_server/__init__.py +14 -0
- kaizen_3c_cli-1.0.0/cli/web_server/routes/__init__.py +2 -0
- kaizen_3c_cli-1.0.0/cli/web_server/routes/adr.py +33 -0
- kaizen_3c_cli-1.0.0/cli/web_server/routes/decompose.py +110 -0
- kaizen_3c_cli-1.0.0/cli/web_server/routes/memsafe.py +138 -0
- kaizen_3c_cli-1.0.0/cli/web_server/routes/migrate.py +133 -0
- kaizen_3c_cli-1.0.0/cli/web_server/routes/priors.py +50 -0
- kaizen_3c_cli-1.0.0/cli/web_server/routes/providers.py +44 -0
- kaizen_3c_cli-1.0.0/cli/web_server/routes/recompose.py +105 -0
- kaizen_3c_cli-1.0.0/cli/web_server/routes/runs.py +69 -0
- kaizen_3c_cli-1.0.0/cli/web_server/routes/status.py +55 -0
- kaizen_3c_cli-1.0.0/cli/web_server/routes/version.py +15 -0
- kaizen_3c_cli-1.0.0/cli/web_server/server.py +94 -0
- kaizen_3c_cli-1.0.0/cli/web_server/settings.py +53 -0
- kaizen_3c_cli-1.0.0/cli/web_server/sse.py +101 -0
- kaizen_3c_cli-1.0.0/cli/web_server/static/.build-info +4 -0
- kaizen_3c_cli-1.0.0/cli/web_server/static/assets/index-BsmHrNwi.js +187 -0
- kaizen_3c_cli-1.0.0/cli/web_server/static/assets/index-BsmHrNwi.js.map +1 -0
- kaizen_3c_cli-1.0.0/cli/web_server/static/assets/index-FELcRPb3.css +1 -0
- kaizen_3c_cli-1.0.0/cli/web_server/static/index.html +14 -0
- kaizen_3c_cli-1.0.0/cli/web_server/tests/__init__.py +0 -0
- kaizen_3c_cli-1.0.0/cli/web_server/tests/test_integration.py +123 -0
- kaizen_3c_cli-1.0.0/cli/web_server/tests/test_routes.py +189 -0
- kaizen_3c_cli-1.0.0/cli/web_server/tests/test_sse.py +168 -0
- kaizen_3c_cli-1.0.0/kaizen_3c_cli.egg-info/PKG-INFO +123 -0
- kaizen_3c_cli-1.0.0/kaizen_3c_cli.egg-info/SOURCES.txt +81 -0
- kaizen_3c_cli-1.0.0/kaizen_3c_cli.egg-info/dependency_links.txt +1 -0
- kaizen_3c_cli-1.0.0/kaizen_3c_cli.egg-info/entry_points.txt +2 -0
- kaizen_3c_cli-1.0.0/kaizen_3c_cli.egg-info/requires.txt +21 -0
- kaizen_3c_cli-1.0.0/kaizen_3c_cli.egg-info/top_level.txt +1 -0
- kaizen_3c_cli-1.0.0/pyproject.toml +94 -0
- kaizen_3c_cli-1.0.0/setup.cfg +4 -0
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/).
|
|
5
|
+
|
|
6
|
+
## [1.0.0] - 2026-04-23
|
|
7
|
+
|
|
8
|
+
First public release on PyPI as `kaizen-3c-cli`, published from the public
|
|
9
|
+
repo `Kaizen-3C/kaizen-cli` (Apache-2.0). Prior versions shipped from the
|
|
10
|
+
private `kaizen-delta` monorepo under the package name `kaizen-cli`; the
|
|
11
|
+
`kaizen-cli` PyPI namespace was already held by an unrelated abandoned
|
|
12
|
+
project (Saurav Panda, last release 2024-09-30), so the public name pivots
|
|
13
|
+
to `kaizen-3c-cli`. The shell command stays `kaizen`.
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- **Package renamed** `kaizen-cli` → `kaizen-3c-cli` for PyPI publication.
|
|
18
|
+
Shell command remains `kaizen`.
|
|
19
|
+
- **Repository URLs** in `pyproject.toml` point at `Kaizen-3C/kaizen-cli`
|
|
20
|
+
(new public repo) and `https://kaizen-3c.dev` for the homepage.
|
|
21
|
+
- **Packaging self-contained under `cli/`:** the sibling top-level packages
|
|
22
|
+
`kaizen_web/` and `kaizen_mcp/` were vendored into `cli/web_server/` and
|
|
23
|
+
`cli/mcp_server/` respectively. All imports rewritten; `git mv` preserved
|
|
24
|
+
history. `pyproject.toml [tool.setuptools.packages.find]` narrowed to
|
|
25
|
+
`["cli*"]`. This enables clean `git subtree split --prefix=cli` extraction
|
|
26
|
+
into the public repo.
|
|
27
|
+
- **`license-files`** in `pyproject.toml` now points at `LICENSE` (bare name,
|
|
28
|
+
standard for Apache-2.0 projects) plus `NOTICE`.
|
|
29
|
+
|
|
30
|
+
### Removed
|
|
31
|
+
|
|
32
|
+
- **`cli/commands/run.py`** — unregistered dead code that still imported from
|
|
33
|
+
the private `agents.src.*` tree. Never wired into `cli/main.py`, not
|
|
34
|
+
reachable from any registered subcommand, safe delete. Removed to avoid
|
|
35
|
+
shipping a module with private-monorepo import references in the public
|
|
36
|
+
wheel.
|
|
37
|
+
|
|
38
|
+
### Deferred to v1.1
|
|
39
|
+
|
|
40
|
+
`kaizen bench reproduce` was scoped and prototyped during W2 but deferred
|
|
41
|
+
to v1.1. The benchmarks repository at https://github.com/Kaizen-3C/benchmarks
|
|
42
|
+
remains the canonical path for reproduction; `kaizen bench commit0` now
|
|
43
|
+
prints an informational pointer to it with exact steps and requirements.
|
|
44
|
+
|
|
45
|
+
### Added
|
|
46
|
+
|
|
47
|
+
- **`[demo]` extras** — `pip install "kaizen-3c-cli[demo]"` pulls in `pytest` so `kaizen demo`'s Step 3 runs live against the recomposed code. Without the extras, Step 3 prints the pre-recorded pytest output from the tarball — no ImportError, no confusion.
|
|
48
|
+
- Pre-recorded demo tarball at `cli/demo_assets/wcwidth_demo.tar.gz`: a
|
|
49
|
+
real Python-to-Python recomposition of `wcwidth` (decompose + recompose
|
|
50
|
+
with `--target-language Python`) so `kaizen demo` plays back a genuine
|
|
51
|
+
before/after with pytest deltas, not a tautology.
|
|
52
|
+
- `LICENSE`, `NOTICE`, `CONTRIBUTING.md`, `SECURITY.md` scaffolding
|
|
53
|
+
(authored as part of W2) — Apache-2.0, DCO-signed contributions,
|
|
54
|
+
90-day security disclosure via `security@kaizen-3c.dev`.
|
|
55
|
+
|
|
56
|
+
## [0.4.0] - 2026-04-22
|
|
57
|
+
|
|
58
|
+
Second release. Adds config-dir + first-run wizard + resume + adversarial LLM
|
|
59
|
+
review + approval prompt and ships the
|
|
60
|
+
**MCP server** as the v0.5.0 headline — kaizen is now callable as a tool from
|
|
61
|
+
Claude Desktop, Cursor, Zed, and any other MCP-capable client. Python floor
|
|
62
|
+
bumped to 3.10+.
|
|
63
|
+
|
|
64
|
+
### Added
|
|
65
|
+
|
|
66
|
+
#### CLI subcommands
|
|
67
|
+
|
|
68
|
+
- `kaizen init` — first-run wizard. Interactive provider pick + env-var probe
|
|
69
|
+
+ writes `~/.kaizen/config.toml` (platform-appropriate dir via
|
|
70
|
+
`platformdirs`). Flags: `--non-interactive` (CI), `--show` (print config
|
|
71
|
+
without modifying).
|
|
72
|
+
- `kaizen resume [--last | <run_id>]` — re-run recompose against the most
|
|
73
|
+
recent local ADR. Scans the working tree for `adr-root.md`, `roadmap.md`,
|
|
74
|
+
`plan.md`, `adr-*.md`, `ADR-*.md`; skips standard noisy dirs. `--list`
|
|
75
|
+
enumerates candidates. Passthrough flags for all recompose options.
|
|
76
|
+
- `kaizen mcp-serve` — MCP server (new `kaizen_mcp/` package). Exposes six
|
|
77
|
+
tools: `decompose`, `recompose`, `memsafe_roadmap`, `migrate_plan`,
|
|
78
|
+
`list_runs`, `read_adr`. Tool handlers call the same Python functions the
|
|
79
|
+
CLI uses, so every surface stays in lockstep. Transport: stdio (default,
|
|
80
|
+
for Claude Desktop) or SSE (`--transport sse --port 7866`). Requires
|
|
81
|
+
`pip install 'kaizen-3c-cli[mcp]'`.
|
|
82
|
+
|
|
83
|
+
#### CLI flags on existing pipeline commands
|
|
84
|
+
|
|
85
|
+
- `--llm-review` (on `decompose`, `recompose`, `memsafe-roadmap`,
|
|
86
|
+
`migrate-plan`) — adversarial review of the produced ADR by a different
|
|
87
|
+
model instance than the write agent (anti-vibe-coding guardrail per
|
|
88
|
+
ADR-0009). Review findings appear in the `result` event and as a
|
|
89
|
+
`<adr>.review.json` sidecar.
|
|
90
|
+
- `--review-model MODEL` — explicit override for the review-stage model
|
|
91
|
+
(otherwise auto-selected via a "flip heuristic": sonnet-4-5 → sonnet-4-6,
|
|
92
|
+
gpt-4o → gpt-4.1, etc.).
|
|
93
|
+
- `--approve` (on `memsafe-roadmap`, `migrate-plan`) — when combined with
|
|
94
|
+
`--recompose`, pause after the ADR is produced and prompt before continuing.
|
|
95
|
+
- `--yolo` — explicit opt-out of the approval prompt; equivalent to the
|
|
96
|
+
default behavior but usable in scripts for clarity.
|
|
97
|
+
|
|
98
|
+
#### Configuration
|
|
99
|
+
|
|
100
|
+
- New `cli/config.py` module with `load_config()` / `save_config()` /
|
|
101
|
+
`apply_defaults(args)`. Applied at the top of every pipeline command.
|
|
102
|
+
Precedence (highest wins): explicit CLI flag → env var → `config.toml` →
|
|
103
|
+
argparse defaults. Config schema covers `[providers]`, `[providers.<name>]`,
|
|
104
|
+
`[output]`, `[pipeline]`.
|
|
105
|
+
|
|
106
|
+
#### Internal
|
|
107
|
+
|
|
108
|
+
- New `cli/events.py` event kinds: `stage` with `name="llm_review"` and
|
|
109
|
+
`name="approval"` flow through the existing SSE + NDJSON schema
|
|
110
|
+
unchanged — web UI and CLI consumers see review findings and approval
|
|
111
|
+
decisions as normal events.
|
|
112
|
+
- `cli/review.py` — thin wrapper over the existing `cli/pipeline/specialist_review.py`
|
|
113
|
+
pipeline script; exposes `run_llm_review(adr_path, ...)` with auto-selected
|
|
114
|
+
review model and event emission.
|
|
115
|
+
- `cli/approval.py` — `approval_prompt(message, yolo=False, default=False)`
|
|
116
|
+
helper. Non-TTY environments fall back to `default` without prompting
|
|
117
|
+
(so CI pipelines don't hang).
|
|
118
|
+
|
|
119
|
+
### Changed
|
|
120
|
+
|
|
121
|
+
- Python floor bumped from 3.9 to **3.10** (needed for the MCP SDK; also
|
|
122
|
+
aligns with modern tooling). Classifiers updated.
|
|
123
|
+
- `anthropic` dep pinned to `>=0.87.0` (fixes GHSA-q5f5-3gjm-7mfm +
|
|
124
|
+
GHSA-w828-4qhx-vxx3).
|
|
125
|
+
- New `[mcp]` optional extra for the MCP server.
|
|
126
|
+
- New `platformdirs>=4.0.0` runtime dep (used by `cli.config` for
|
|
127
|
+
cross-platform config-dir resolution).
|
|
128
|
+
|
|
129
|
+
### Test coverage delta
|
|
130
|
+
|
|
131
|
+
Test count grew from 33 (v0.3.0) to **145** (v0.4.0):
|
|
132
|
+
- `cli/tests/test_config.py` — 22 tests
|
|
133
|
+
- `cli/tests/test_init.py` — 22 tests
|
|
134
|
+
- `cli/tests/test_resume.py` — 11 tests
|
|
135
|
+
- `cli/tests/test_review.py` — 21 tests
|
|
136
|
+
- `cli/tests/test_approval.py` — 17 tests
|
|
137
|
+
- `kaizen_mcp/tests/test_server.py` — 19 tests
|
|
138
|
+
|
|
139
|
+
Pre-existing suites (events, wedge routes, SSE) unchanged and still green.
|
|
140
|
+
|
|
141
|
+
### Still not shipped
|
|
142
|
+
|
|
143
|
+
- `kaizen run` — remains in dev repo only (requires `agents/src/` transitive
|
|
144
|
+
closure; see v0.3.0 notes).
|
|
145
|
+
- Standalone binary, translated READMEs, interactive TUI — tracked in
|
|
146
|
+
the internal CLI roadmap for later releases.
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## [0.3.0] - 2026-04-21
|
|
151
|
+
|
|
152
|
+
First public release — `pip install kaizen-3c-cli`. Apache-2.0 core, dual-licensed
|
|
153
|
+
with the Kaizen Enterprise Commercial License (see ADR-0053).
|
|
154
|
+
|
|
155
|
+
### Added
|
|
156
|
+
|
|
157
|
+
#### CLI (`kaizen-cli`)
|
|
158
|
+
|
|
159
|
+
- `kaizen memsafe-roadmap <repo>` — C/C++ → Rust. Produces a CISA-format memory
|
|
160
|
+
safety roadmap and per-module ADR stubs. Supports `--plain`,
|
|
161
|
+
`--domain memory-safe`, `--recompose`, `--dry-run`, `--provider` (anthropic /
|
|
162
|
+
openai / ollama / litellm / mixed).
|
|
163
|
+
- `kaizen migrate-plan --from X --to Y <repo>` — framework modernization plan
|
|
164
|
+
across 9 language/framework pairs (AngularJS → Angular/React, jQuery → React,
|
|
165
|
+
.NET Framework → .NET 8/9, Python 2 → 3, Java 8 → 17/21, Spring 4 →
|
|
166
|
+
Spring Boot 3). Same flag surface as `memsafe-roadmap`.
|
|
167
|
+
- `kaizen decompose <repo>` — direct pipeline access (Source → ADR). Wraps
|
|
168
|
+
`cli.pipeline.decompose_v2` with all its flags (`--source-language`, `--glob`,
|
|
169
|
+
`--domain`, `--temperature`, `--no-signatures`).
|
|
170
|
+
- `kaizen recompose <adr>` — direct pipeline access (ADR → target code).
|
|
171
|
+
Wraps `cli.pipeline.recompose_v2` with its full flag surface.
|
|
172
|
+
- `kaizen status [--path]` — summarize recent Kaizen runs in a directory.
|
|
173
|
+
- `kaizen priors show|reset [--path]` — inspect / reset Thompson priors files.
|
|
174
|
+
- `kaizen web [--port] [--host] [--open]` — start the lite web UI on
|
|
175
|
+
`127.0.0.1:7865`. Requires `pip install 'kaizen-3c-cli[web]'`.
|
|
176
|
+
- Structured progress events via `cli.events` — CLI prints human-readable
|
|
177
|
+
lines by default; `KAIZEN_EVENT_STREAM=ndjson` switches to NDJSON for
|
|
178
|
+
`jq` / CI log ingestion. Wedge commands emit
|
|
179
|
+
`run.start` / `stage` / `detail` / `stage.done` / `result` events.
|
|
180
|
+
|
|
181
|
+
#### Web UI (`kaizen-3c-cli[web]`, optional)
|
|
182
|
+
|
|
183
|
+
- FastAPI backend at `kaizen_web/` — 11 routes over the CLI surface. Blocking
|
|
184
|
+
and SSE variants for all four pipeline commands (decompose, recompose,
|
|
185
|
+
memsafe-roadmap, migrate-plan). Read-only routes for status, priors,
|
|
186
|
+
artifact listing, ADR markdown fetch, provider/version introspection.
|
|
187
|
+
- React SPA at `ui-lite/` — 7 pages: Home, Decompose, Recompose, Memsafe,
|
|
188
|
+
Migrate, Local runs, ADR viewer. Vite + React 18 + Tailwind + React Query +
|
|
189
|
+
`@microsoft/fetch-event-source` for POST-SSE consumption.
|
|
190
|
+
- Single-origin deployment: `kaizen web` serves the pre-built SPA at `/`
|
|
191
|
+
alongside `/api/*` — no CORS, no separate dev server after install.
|
|
192
|
+
- Live progress streaming: every long-running wedge/pipeline call renders
|
|
193
|
+
stage-by-stage in the browser via SSE.
|
|
194
|
+
|
|
195
|
+
#### Documentation & Release Tooling (internal)
|
|
196
|
+
|
|
197
|
+
Release tooling + the allowlist-driven public-extract pipeline live in the
|
|
198
|
+
upstream monorepo and are not shipped in this repo. Public users consume
|
|
199
|
+
the released wheel on PyPI; contributors see the Apache-2.0 source here.
|
|
200
|
+
|
|
201
|
+
### Dual-license boundary (ADR-0053)
|
|
202
|
+
|
|
203
|
+
Apache-2.0 covers the public CLI + web + MCP surfaces shipped here. The
|
|
204
|
+
Kaizen Enterprise Commercial License covers the .NET + React Commercial UI
|
|
205
|
+
(multi-tenancy, auth, audit-log, approval workflows, cost attribution) which
|
|
206
|
+
lives in a separate private repo. See `NOTICE` for the tier summary and
|
|
207
|
+
contact hello@kaizen-3c.dev for the commercial surface.
|
|
208
|
+
|
|
209
|
+
### Not shipped in v0.3.0
|
|
210
|
+
|
|
211
|
+
- `kaizen run` (pre-reframe generic bootstrap orchestrator) — stays in the
|
|
212
|
+
private dev repo. Requires the `agents/src/` transitive closure which is
|
|
213
|
+
not on the public allowlist for v0.3.0. The Phase B wedges and the
|
|
214
|
+
decompose/recompose primitives cover the public surface.
|
|
215
|
+
- Rust orchestrator (`core/`) — 40+ deferred modules; Python pipeline is the
|
|
216
|
+
only end-to-end path in v0.3.0.
|
|
217
|
+
- Enterprise components (auth, MFA, SSO, RBAC, multi-tenancy, audit-log
|
|
218
|
+
export, approval workflows, cost attribution UI) — Commercial-tier only.
|
|
219
|
+
|
|
220
|
+
### Case studies (reproducible)
|
|
221
|
+
|
|
222
|
+
Case-study writeups live in the upstream monorepo alongside source artifacts:
|
|
223
|
+
|
|
224
|
+
- **memsafe-01-inih** — C → Rust, 522 LOC. One-shot LLM: 6 `cargo check`
|
|
225
|
+
errors. Plain ADR pipeline: 1 error. ADR + memory-safe domain schema:
|
|
226
|
+
**0 errors**.
|
|
227
|
+
- **framework-01-nancy-context** — .NET Fx → .NET 8, 148 LOC. One-shot:
|
|
228
|
+
14 `dotnet build` errors. Plain ADR pipeline: **0 errors**.
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## [Unreleased]
|
|
233
|
+
### Added
|
|
234
|
+
- Beta release preparation (security hardening, documentation, ADR cleanup)
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## [0.1.0-alpha] - 2026-04-10
|
|
239
|
+
|
|
240
|
+
### Core Engine
|
|
241
|
+
|
|
242
|
+
#### Added
|
|
243
|
+
- Rust orchestrator foundation with TTD-TOAR (renamed CD-AOR/TAOR) denoising loop
|
|
244
|
+
- Three-stream parallel execution pipeline in gRPC orchestrator
|
|
245
|
+
- Convergence gate and TAOR optimization with production benchmarks
|
|
246
|
+
- Phase 4B/Phase 5 48-hour baseline validation and 14-day RL training run
|
|
247
|
+
- 24-hour production monitoring and deployment approval workflow
|
|
248
|
+
- Cloud baseline validation with dual-track testing and cost routing analysis
|
|
249
|
+
- Held-out validation set for Opus critical review methodology
|
|
250
|
+
|
|
251
|
+
#### Fixed
|
|
252
|
+
- Rust type inference errors with explicit annotations across orchestrator modules
|
|
253
|
+
- Proto import paths and oneof Result enum usage in agent responses
|
|
254
|
+
- `Result` type name conflict resolved via fully qualified paths
|
|
255
|
+
- Deferred unimplemented Phase 9–11 modules to unblock orchestrator build
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
### Agents
|
|
260
|
+
|
|
261
|
+
#### Added
|
|
262
|
+
- Python gRPC agent layer with intelligent provider routing and liteLLM fallback
|
|
263
|
+
- Dual-provider configuration with independent Local/Cloud enabled/disabled toggles
|
|
264
|
+
- Real-time provider health status checking with auto-refresh
|
|
265
|
+
- Dynamic provider selection and cost estimation (7× cloud multiplier)
|
|
266
|
+
- Phase 27: Two-step goal submission with in-memory file upload session service
|
|
267
|
+
- Provider routing implementation guide and architecture documentation
|
|
268
|
+
|
|
269
|
+
#### Fixed
|
|
270
|
+
- Duplicate `ProviderOptions` and `RlConfig` definitions removed
|
|
271
|
+
- gRPC service serving deferred until proto integration complete
|
|
272
|
+
- gRPC client compilation errors resolved
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
### API
|
|
277
|
+
|
|
278
|
+
#### Added
|
|
279
|
+
- Phase 28: C# REST API with user authentication and PostgreSQL session management
|
|
280
|
+
- Phase 29: User profiles, refresh tokens, audit logging, and password reset
|
|
281
|
+
- Phase 30: Enhanced security with session hardening and CSRF/token rotation
|
|
282
|
+
- Database migrations and PostgreSQL connectivity
|
|
283
|
+
- CORS configuration driven by environment variables
|
|
284
|
+
- Comprehensive testing infrastructure with project isolation
|
|
285
|
+
- Goal history and artifact persistence API (Phases 1–5)
|
|
286
|
+
- Work sessions API with frontend integration
|
|
287
|
+
|
|
288
|
+
#### Changed
|
|
289
|
+
- Renamed CD-AOR/TAOR fields across entire C# API and proto layer (was TTD-TOAR/TOAR)
|
|
290
|
+
- Login set as initial landing route; home page gains Sign In button
|
|
291
|
+
|
|
292
|
+
#### Fixed
|
|
293
|
+
- HTTP 400 error on goal submission due to missing required fields
|
|
294
|
+
- API URL corrected to port 8001 across all consumers
|
|
295
|
+
- Login field name mismatch (`email` vs `username`)
|
|
296
|
+
- JSON deserialization issues in authentication API responses
|
|
297
|
+
- CORS configuration for separated UI/API container topology
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
### Frontend
|
|
302
|
+
|
|
303
|
+
#### Added
|
|
304
|
+
- React UI with decompose/recompose pages and goal submission workflow
|
|
305
|
+
- Enhanced submit-goal form with comprehensive CD-AOR controls and file upload
|
|
306
|
+
- Goal History system: create, list, detail, and artifact persistence (Phases 1–5)
|
|
307
|
+
- Work Sessions system with modal, list, and session state management
|
|
308
|
+
- Expandable textarea modal for composing large prompts
|
|
309
|
+
- Model selection flyout menu with 5 LLM options (GPT-4, Claude, Llama 2, etc.)
|
|
310
|
+
- 40+ `data-testid` attributes added for E2E test coverage
|
|
311
|
+
- Outline icons for all sidebar and toolbar buttons; infinity symbol in header
|
|
312
|
+
|
|
313
|
+
#### Changed
|
|
314
|
+
- Sidebar button styling updated to square shape matching AGENTS panel
|
|
315
|
+
- Model button repositioned to far-right of button row, aligned with textarea edge
|
|
316
|
+
|
|
317
|
+
#### Fixed
|
|
318
|
+
- Blank dashboard display resolved with welcome content
|
|
319
|
+
- UI API URL configuration corrected for browser (non-container) access
|
|
320
|
+
- Send/expand button arrows always visible (removed `transition-all` opacity conflict)
|
|
321
|
+
- `NewSessionModal` missing import and rendering restored
|
|
322
|
+
- Sidebar icons always visible with explicit fill, stroke, and opacity values
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
### Infrastructure
|
|
327
|
+
|
|
328
|
+
#### Added
|
|
329
|
+
- Docker Compose stacks for API, UI, LLM, and orchestrator services
|
|
330
|
+
- Nginx reverse proxy configuration for multi-container topology
|
|
331
|
+
- GitHub Actions CI/CD workflow for automated LaTeX PDF compilation
|
|
332
|
+
- CI/CD pipeline improvements and versioning scheme (P3 remediation)
|
|
333
|
+
- Comprehensive QA testing infrastructure and E2E test suite (Playwright)
|
|
334
|
+
- 13/13 authentication E2E tests passing; goals/decompose/recompose tests with graceful skipping
|
|
335
|
+
|
|
336
|
+
#### Fixed
|
|
337
|
+
- Docker dependency injection configuration enabling full stack deployment
|
|
338
|
+
- GitHub Actions updated to latest stable action versions
|
|
339
|
+
- Line endings normalized to LF for LaTeX source files
|
|
340
|
+
|
|
341
|
+
---
|
|
342
|
+
|
|
343
|
+
### Architecture
|
|
344
|
+
|
|
345
|
+
#### Added
|
|
346
|
+
- Three-tier workspace architecture with mirror script
|
|
347
|
+
- Comprehensive development roadmap covering Phases 1–30+
|
|
348
|
+
- ADR gap analysis across five iterations (V1–V5); all 49 gaps resolved at V5
|
|
349
|
+
- 14 residual issues (R1–R14) identified and remediated across P0–P2 implementation
|
|
350
|
+
- LaTeX empirical paper and research paper variants with statistical validation
|
|
351
|
+
- Hit-and-Adjust summary with Phase 4B findings
|
|
352
|
+
- PDF compilation guide with five build methods and Python helper script
|
|
353
|
+
|
|
354
|
+
#### Changed
|
|
355
|
+
- TTD-TOAR/TOAR terminology renamed to CD-AOR/TAOR across all ADRs and documentation
|
|
356
|
+
|
|
357
|
+
---
|
|
358
|
+
|
|
359
|
+
### Enterprise
|
|
360
|
+
|
|
361
|
+
#### Added
|
|
362
|
+
- Multi-tenancy foundation via PostgreSQL user and session isolation
|
|
363
|
+
- Audit logging for user management events (Phase 29)
|
|
364
|
+
- Password reset flow with token lifecycle management
|
|
365
|
+
- Refresh token rotation with session revocation support
|
|
366
|
+
|
|
367
|
+
---
|
|
368
|
+
|
|
369
|
+
## [0.0.1] - 2026-03-01 (estimated)
|
|
370
|
+
### Added
|
|
371
|
+
- Initial repository setup with three-tier workspace architecture
|
|
372
|
+
- Phase 1 Picasso Study: CD-AOR/TAOR foundation in kaizen-alpha
|
|
373
|
+
- Base Docker infrastructure and LLM stack scaffolding
|
|
374
|
+
- Dashboard and form baseline from early UI prototype
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
Apache License
|
|
2
|
+
Version 2.0, January 2004
|
|
3
|
+
http://www.apache.org/licenses/
|
|
4
|
+
|
|
5
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
6
|
+
|
|
7
|
+
1. Definitions.
|
|
8
|
+
|
|
9
|
+
"License" shall mean the terms and conditions for use, reproduction,
|
|
10
|
+
and distribution as defined by Sections 1 through 9 of this document.
|
|
11
|
+
|
|
12
|
+
"Licensor" shall mean the copyright owner or entity authorized by
|
|
13
|
+
the copyright owner that is granting the License.
|
|
14
|
+
|
|
15
|
+
"Legal Entity" shall mean the union of the acting entity and all
|
|
16
|
+
other entities that control, are controlled by, or are under common
|
|
17
|
+
control with that entity. For the purposes of this definition,
|
|
18
|
+
"control" means (i) the power, direct or indirect, to cause the
|
|
19
|
+
direction or management of such entity, whether by contract or
|
|
20
|
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
21
|
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
22
|
+
|
|
23
|
+
"You" (or "Your") shall mean an individual or Legal Entity
|
|
24
|
+
exercising permissions granted by this License.
|
|
25
|
+
|
|
26
|
+
"Source" form shall mean the preferred form for making modifications,
|
|
27
|
+
including but not limited to software source code, documentation
|
|
28
|
+
source, and configuration files.
|
|
29
|
+
|
|
30
|
+
"Object" form shall mean any form resulting from mechanical
|
|
31
|
+
transformation or translation of a Source form, including but
|
|
32
|
+
not limited to compiled object code, generated documentation,
|
|
33
|
+
and conversions to other media types.
|
|
34
|
+
|
|
35
|
+
"Work" shall mean the work of authorship made available under
|
|
36
|
+
the License, as indicated by a copyright notice that is included in
|
|
37
|
+
or attached to the work (an example is provided in the Appendix below).
|
|
38
|
+
|
|
39
|
+
"Derivative Works" shall mean any work, whether in Source or Object
|
|
40
|
+
form, that is based on (or derived from) the Work and for which the
|
|
41
|
+
editorial revisions, annotations, elaborations, or other modifications
|
|
42
|
+
represent, as a whole, an original work of authorship. For the purposes
|
|
43
|
+
of this License, Derivative Works shall not include works that remain
|
|
44
|
+
separable from, or merely link (or bind by name) to the interfaces of,
|
|
45
|
+
the Work and its Derivative Works thereof.
|
|
46
|
+
|
|
47
|
+
"Contribution" shall mean, as submitted to the Licensor for inclusion
|
|
48
|
+
in the Work by the copyright owner or by an individual or Legal Entity
|
|
49
|
+
authorized to submit on behalf of the copyright owner. For the purposes
|
|
50
|
+
of this definition, "submitted" means any form of electronic, verbal,
|
|
51
|
+
or written communication sent to the Licensor or its representatives,
|
|
52
|
+
including but not limited to communication on electronic mailing lists,
|
|
53
|
+
source code control systems, and issue tracking systems that are managed
|
|
54
|
+
by, or on behalf of, the Licensor for the purpose of discussing and
|
|
55
|
+
improving the Work, but excluding communication that is conspicuously
|
|
56
|
+
marked or otherwise designated in writing by the copyright owner as
|
|
57
|
+
"Not a Contribution."
|
|
58
|
+
|
|
59
|
+
"Contributor" shall mean Licensor and any Legal Entity on behalf of
|
|
60
|
+
whom a Contribution has been received by the Licensor and subsequently
|
|
61
|
+
incorporated within the Work.
|
|
62
|
+
|
|
63
|
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
64
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
65
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
66
|
+
copyright license to reproduce, prepare Derivative Works of,
|
|
67
|
+
publicly display, publicly perform, sublicense, and distribute the
|
|
68
|
+
Work and such Derivative Works in Source or Object form.
|
|
69
|
+
|
|
70
|
+
3. Grant of Patent License. Subject to the terms and conditions of
|
|
71
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
72
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
73
|
+
(except as stated in this section) patent license to make, have made,
|
|
74
|
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
75
|
+
where such license applies only to those patent claims licensable
|
|
76
|
+
by such Contributor that are necessarily infringed by their
|
|
77
|
+
Contribution(s) alone or by the combination of their Contribution(s)
|
|
78
|
+
with the Work to which such Contribution(s) was submitted. If You
|
|
79
|
+
institute patent litigation against any entity (including a cross-claim
|
|
80
|
+
or counterclaim in a lawsuit) alleging that the Work or any Contribution
|
|
81
|
+
incorporated within the Work constitutes patent or contributory patent
|
|
82
|
+
infringement, then any patent licenses granted to You under this License
|
|
83
|
+
for that Work shall terminate as of the date such litigation is filed.
|
|
84
|
+
|
|
85
|
+
4. Redistribution. You may reproduce and distribute copies of the
|
|
86
|
+
Work or Derivative Works thereof in any medium, with or without
|
|
87
|
+
modifications, and in Source or Object form, provided that You
|
|
88
|
+
meet the following conditions:
|
|
89
|
+
|
|
90
|
+
(a) You must give any other recipients of the Work or Derivative
|
|
91
|
+
Works a copy of this License; and
|
|
92
|
+
|
|
93
|
+
(b) You must cause any modified files to carry prominent notices
|
|
94
|
+
stating that You changed the files; and
|
|
95
|
+
|
|
96
|
+
(c) You must retain, in the Source form of any Derivative Works
|
|
97
|
+
that You distribute, all copyright, patent, trademark, and
|
|
98
|
+
attribution notices from the Source form of the Work,
|
|
99
|
+
excluding those notices that do not pertain to any part of
|
|
100
|
+
the Derivative Works; and
|
|
101
|
+
|
|
102
|
+
(d) If the Work includes a "NOTICE" text file as part of its
|
|
103
|
+
distribution, You must include a readable copy of the
|
|
104
|
+
attribution notices contained within such NOTICE file, in
|
|
105
|
+
at least one of the following places: within a NOTICE text
|
|
106
|
+
file distributed as part of the Derivative Works; within
|
|
107
|
+
the Source form or documentation, if provided along with the
|
|
108
|
+
Derivative Works; or, within a display generated by the
|
|
109
|
+
Derivative Works, if and wherever such third-party notices
|
|
110
|
+
normally appear. The contents of the NOTICE file are for
|
|
111
|
+
informational purposes only and do not modify the License.
|
|
112
|
+
You may add Your own attribution notices within Derivative
|
|
113
|
+
Works that You distribute, alongside or as an addendum to
|
|
114
|
+
the NOTICE text from the Work, provided that such additional
|
|
115
|
+
attribution notices cannot be construed as modifying the License.
|
|
116
|
+
|
|
117
|
+
You may add Your own license statement for Your modifications and
|
|
118
|
+
may provide additional grant of rights to use, copy, modify, merge,
|
|
119
|
+
publish, distribute, sublicense, and/or sell copies of the
|
|
120
|
+
Derivative Works, and to permit persons to whom the Derivative
|
|
121
|
+
Works are furnished to do so.
|
|
122
|
+
|
|
123
|
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
124
|
+
any Contribution intentionally submitted for inclusion in the Work
|
|
125
|
+
by You to the Licensor shall be under the terms and conditions of
|
|
126
|
+
this License, without any additional terms or conditions.
|
|
127
|
+
Notwithstanding the above, nothing herein shall supersede or modify
|
|
128
|
+
the terms of any separate license agreement you may have executed
|
|
129
|
+
with Licensor regarding such Contributions.
|
|
130
|
+
|
|
131
|
+
6. Trademarks. This License does not grant permission to use the trade
|
|
132
|
+
names, trademarks, service marks, or product names of the Licensor,
|
|
133
|
+
except as required for reasonable and customary use in describing the
|
|
134
|
+
origin of the Work and reproducing the content of the NOTICE file.
|
|
135
|
+
|
|
136
|
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
137
|
+
agreed to in writing, Licensor provides the Work (and each
|
|
138
|
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
139
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
140
|
+
implied, including, without limitation, any warranties or conditions
|
|
141
|
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
142
|
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
143
|
+
appropriateness of using or reproducing the Work and assume any
|
|
144
|
+
risks associated with Your exercise of permissions under this License.
|
|
145
|
+
|
|
146
|
+
8. Limitation of Liability. In no event and under no legal theory,
|
|
147
|
+
whether in tort (including negligence), contract, or otherwise,
|
|
148
|
+
unless required by applicable law (such as deliberate and grossly
|
|
149
|
+
negligent acts) or agreed to in writing, shall any Contributor be
|
|
150
|
+
liable to You for damages, including any direct, indirect, special,
|
|
151
|
+
incidental, or exemplary damages of any character arising as a
|
|
152
|
+
result of this License or out of the use or inability to use the
|
|
153
|
+
Work (including but not limited to damages for loss of goodwill,
|
|
154
|
+
work stoppage, computer failure or malfunction, or all other
|
|
155
|
+
commercial damages or losses), even if such Contributor has been
|
|
156
|
+
advised of the possibility of such damages.
|
|
157
|
+
|
|
158
|
+
9. Accepting Warranty or Additional Liability. While redistributing
|
|
159
|
+
the Work or Derivative Works thereof, You may choose to offer,
|
|
160
|
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
161
|
+
or other liability obligations and/or rights consistent with this
|
|
162
|
+
License. However, in accepting such obligations, You may offer such
|
|
163
|
+
obligations only on Your own behalf and on Your sole responsibility,
|
|
164
|
+
not on behalf of any other Contributor, and only if You agree to
|
|
165
|
+
indemnify, defend, and hold each Contributor harmless for any
|
|
166
|
+
liability incurred by, or claims asserted against, such Contributor
|
|
167
|
+
by reason of your accepting any warranty or additional liability.
|
|
168
|
+
|
|
169
|
+
END OF TERMS AND CONDITIONS
|
|
170
|
+
|
|
171
|
+
APPENDIX: How to apply the Apache License to your work.
|
|
172
|
+
|
|
173
|
+
To apply the Apache License to your work, attach the following
|
|
174
|
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
|
175
|
+
replaced with your own identifying information. (Don't include
|
|
176
|
+
the brackets!) The text should be enclosed in the appropriate
|
|
177
|
+
comment syntax for the file format in question. It is also
|
|
178
|
+
recommended that a file or directory name be included on the same
|
|
179
|
+
"as is" line as the copyright owner's name for the "same as is" line.
|
|
180
|
+
|
|
181
|
+
Copyright 2026 Anthony Adame (https://kaizen-3c.dev)
|
|
182
|
+
|
|
183
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
184
|
+
you may not use this file except in compliance with the License.
|
|
185
|
+
You may obtain a copy of the License at
|
|
186
|
+
|
|
187
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
188
|
+
|
|
189
|
+
Unless required by applicable law or agreed to in writing, software
|
|
190
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
191
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
192
|
+
implied. See the License for the specific language governing
|
|
193
|
+
permissions and limitations under the License.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
include README.pypi.md
|
|
2
|
+
include LICENSE
|
|
3
|
+
include NOTICE
|
|
4
|
+
include CHANGELOG.md
|
|
5
|
+
include pyproject.toml
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
# kaizen demo bundled cache (when present — generated by build-demo-cache.py)
|
|
9
|
+
recursive-include cli/demo_assets *
|
|
10
|
+
|
|
11
|
+
# kaizen bench vendored analysis scripts
|
|
12
|
+
recursive-include cli/bench *.py
|
|
13
|
+
|
|
14
|
+
# Lite web UI — pre-built SPA bundle served by FastAPI when `kaizen web` runs.
|
|
15
|
+
# Generated by `scripts/release/bundle-spa.py` (Vite build of `ui-lite/` copied
|
|
16
|
+
# into `cli/web_server/static/`). Not checked into git — regenerated per
|
|
17
|
+
# release — but included here so the sdist + wheel ship the built assets and
|
|
18
|
+
# `pip install 'kaizen-3c-cli[web]'` users get a working UI without needing Node.
|
|
19
|
+
recursive-include cli/web_server/static *
|
|
20
|
+
|
|
21
|
+
# Exclude noise
|
|
22
|
+
recursive-exclude tests *
|
|
23
|
+
recursive-exclude demo-workspaces *
|
|
24
|
+
recursive-exclude ui-lite/node_modules *
|
|
25
|
+
recursive-exclude ui-lite/src *
|
|
26
|
+
recursive-exclude ui-lite *.config.js
|
|
27
|
+
recursive-exclude ui-lite *.config.ts
|
|
28
|
+
recursive-exclude ui-lite tsconfig*.json
|
|
29
|
+
recursive-exclude ui-lite package*.json
|
|
30
|
+
global-exclude __pycache__
|
|
31
|
+
global-exclude *.py[cod]
|
|
32
|
+
global-exclude .DS_Store
|