|
1 | | -Changelog |
2 | | - |
3 | | -[2.1.0a1] - Unreleased |
4 | | - |
5 | | -2.1.0a1 opens the CodeClone 2.1 alpha line with intent-first structural |
6 | | -change control, Engineering Memory, trajectory and experience layers, semantic |
7 | | -retrieval, Platform Observability, native agent integrations, and a reorganized |
8 | | -documentation site. |
9 | | - |
10 | | -Added |
11 | | - |
12 | | -* Structural Change Controller. The new |
13 | | - start_controlled_change / finish_controlled_change workflow reduces the |
14 | | - governed agent edit cycle from 7–11 MCP calls to 3–4. It combines workspace |
15 | | - checks, intent declaration, blast-radius mapping, bounded edit scope, patch |
16 | | - verification, review-claim validation, and deterministic review receipts. |
17 | | - CodeClone now exposes 33 agent-visible MCP tools by default. |
18 | | -* Live Implementation Context. The new read-only |
19 | | - get_implementation_context tool projects bounded structural facts for |
20 | | - repo-relative paths from one existing run. It reports workspace freshness, |
21 | | - cache origin, imports/importers, public surface, blast radius, and test |
22 | | - anchors, with separate deterministic digests for the off-report context |
23 | | - artifact and the exact bounded projection. Active intents add explicit |
24 | | - allowed/review/do-not-touch boundaries, while impact mode adds transitive |
25 | | - dependency context and baseline-sensitive findings. Engineering Memory, |
26 | | - tests, docs, trajectories, and Experiences remain lane-separated evidence. |
27 | | - Exact qualname subjects resolve through an off-report Unit and API-surface |
28 | | - location index, with unknown symbols reported explicitly rather than guessed. |
29 | | - Zero-argument queries now resolve active intent scope or bounded live dirty |
30 | | - paths, related module roles collapse with explicit relation tags, and one |
31 | | - safety-first global budget reports all ordinary and safety omissions. |
32 | | - Cache schema 2.9 adds a separate, rebuildable per-function relationship-fact |
33 | | - projection without changing Unit serialization or canonical report identity. |
34 | | - Cross-module calls and resolved non-call references are now attributed to |
35 | | - their caller with production/test lanes; conservative caller-scope shadow |
36 | | - guards keep ambiguous imported names as unresolved call observations. |
37 | | - Intra-module functions, same-module class methods, and self/cls receiver |
38 | | - methods now resolve against the enclosing module and class (keyed on the |
39 | | - actual first-parameter name, never a hardcoded self, and never for |
40 | | - staticmethods), only when the target definition exists; cache schema 2.10. |
41 | | - Per-function relationship facts now aggregate across files (cold and cached) |
42 | | - onto the analysis result and the MCP run record, off the canonical report. |
43 | | - get_implementation_context now projects call_context (callers, callees, |
44 | | - references, test_callers) from those facts with relation_kind x |
45 | | - resolution_status evidence tags, separate production and test caller lanes, |
46 | | - unresolved call observations, and a complete/partial/unavailable |
47 | | - call_graph_status; relationship records are bound into context_artifact_digest. |
48 | | - contract mode returns a truth-map (definition_sites, version_constants, |
49 | | - contract_tests, memory_conflicts) and persistence/serialization path callers |
50 | | - that are emitted only with a typed or memory-backed anchor and are otherwise |
51 | | - not_available rather than name- or directory-guessed. |
52 | | - Context evidence never authorizes edits; edit_allowed remains authoritative. |
53 | | -* Change-intent lifecycle and multi-agent coordination. |
54 | | - manage_change_intent supports declare, check, clear, queue, promote, and |
55 | | - recover operations. Renewable leases, ownership classification, optional |
56 | | - SQLite coordination, retention, workspace hygiene, and recoverable-intent |
57 | | - handling make concurrent agent work explicit and auditable. |
58 | | -* Engineering Memory. A local SQLite knowledge graph stores typed, |
59 | | - evidence-linked repository facts such as contracts, decisions, risks, test |
60 | | - anchors, prior changes, and git provenance. Agents receive ranked, |
61 | | - scope-aware context through get_relevant_memory and |
62 | | - query_engineering_memory; drafts remain human-governed and can be approved |
63 | | - through the CLI or VS Code Memory view. Memory never authorizes edits or |
64 | | - overrides the canonical report, gates, or Patch Trail. |
65 | | -* Trajectory Memory and Patch Trail. Audit-derived trajectories preserve |
66 | | - agent workflows, declared scope, actual changed paths, verification outcomes, |
67 | | - incidents, citations, and review evidence. The current trajectory-v3 |
68 | | - projection adds quality passports, complexity scoring, anomaly detection, |
69 | | - agent profiles, dashboards, semantic retrieval, and deterministic Patch Trail |
70 | | - summaries. Engineering Memory schema 1.7 persists trajectory and Patch |
71 | | - Trail evidence. |
72 | | -* Experience Layer. Deterministic experience-v1 patterns are distilled |
73 | | - from canonical trajectories across all outcomes and exposed through a |
74 | | - separate advisory retrieval lane. Experiences retain supporting evidence and |
75 | | - agent-diversity facets, but never become authority automatically; |
76 | | - promote_experience creates a human-governed memory draft. |
77 | | -* Semantic memory retrieval. Optional LanceDB-backed hybrid search combines |
78 | | - FTS5/BM25 and vector retrieval using deterministic Reciprocal Rank Fusion. |
79 | | - Local embeddings are available through codeclone[semantic-local] with |
80 | | - BAAI/bge-small-en-v1.5. Semantic indexing is lazy, failure-tolerant, and |
81 | | - eventually consistent rather than synchronously rebuilt after every finish. |
82 | | -* Platform Observability. Opt-in, development-only telemetry traces |
83 | | - CodeClone’s own CLI, MCP, analysis, database, semantic-index, and projection |
84 | | - worker activity. The local observer captures timings, RSS/CPU, MCP payload and |
85 | | - token pressure, DB query counts and shapes, causal worker chains, and costly |
86 | | - no-ops. JSON/HTML views provide a diagnostic cockpit, while |
87 | | - query_platform_observability exposes bounded MCP sections for development |
88 | | - agents. Observability never affects reports, gates, baselines, memory facts, |
89 | | - or edit authorization. |
90 | | -* IDE and agent integrations. The VS Code extension gains Engineering |
91 | | - Memory governance, trajectory dashboards, controller audit views, and |
92 | | - workspace session statistics. Native integrations are available for Claude |
93 | | - Desktop, Claude Code, Codex, and Cursor. Claude Code now has a dedicated |
94 | | - marketplace plugin and storefront, separate from the Desktop `.mcpb` bundle. |
95 | | - The Cursor plugin includes skills, rules, fail-closed preToolUse enforcement, |
96 | | - scoped workspace-intent checks, and a structural-review agent. |
97 | | -* Controller and diagnostic CLI surfaces. Added blast-radius, patch |
98 | | - verification, session statistics, controller audit, memory trajectory, |
99 | | - anomaly, agent-profile, semantic-search, and Platform Observability commands. |
100 | | -* Documentation and edition model. Documentation is reorganized into a |
101 | | - thematic 00–26 contract book with unified integration guides, dedicated |
102 | | - chapters for the Controller, Engineering Memory, trajectories, Experiences, |
103 | | - and Platform Observability, plus explicit Open Source / Team / Enterprise |
104 | | - retention and capability tiers. |
105 | | -* MCP schemas now include parameter-level descriptions and deterministic |
106 | | - next_tool guidance. Workspace hygiene warnings, audit events, token-budget |
107 | | - tracking, and documentation-contract linting were also added. |
108 | | -* **Corpus Analytics (intent lane, Slice 1).** Optional offline clustering of |
109 | | - historical change-control intents via `codeclone analytics …`. |
110 | | - Requires `codeclone[analytics]`. Reads audit + trajectory (+ optional registry |
111 | | - overlay), writes SQLite/LanceDB artifacts under `.codeclone/analytics/`, and |
112 | | - exports inspectable JSON/HTML with sweep comparison, cluster diagnostics, |
113 | | - noise exploration, explicit heuristic recommendation vs maintainer selection, |
114 | | - and runtime observability spans. Analytics embeddings and their lifecycle are |
115 | | - separate from the Engineering Memory semantic index; |
116 | | - `[tool.codeclone.analytics]` configures paths and clustering defaults. |
117 | | -* **Corpus Analytics interpretability (Slice 1.1).** JSON export schema `1.2` |
118 | | - and the self-contained HTML report now separate formal technical validity |
119 | | - from human interpretation. Valid runs expose dominant-cluster ratios, |
120 | | - bounded representative/boundary/noise previews, numeric summaries, |
121 | | - categorical correlations, small-cluster provenance completeness, and |
122 | | - explicit preview disclosure. Invalid and failed runs remain inspectable in a |
123 | | - limited diagnostic mode without partition metrics, previews, score, or rank; |
124 | | - sweep comparison includes every persisted candidate. Representation contract |
125 | | - `3` materializes explicit trajectory, Patch Trail, and registry-overlay |
126 | | - presence facts for new snapshots without adding live registry state to source |
| 1 | +# Changelog |
| 2 | + |
| 3 | +## [2.1.0a1] - Unreleased |
| 4 | + |
| 5 | +CodeClone 2.1 introduces intent-first structural change control, persistent engineering context, agent workflow |
| 6 | +evidence, platform self-observability, and broader IDE/agent integration. |
| 7 | + |
| 8 | +### Added |
| 9 | + |
| 10 | +- **Structural Change Controller** with `start_controlled_change` / `finish_controlled_change`, bounded edit scope, |
| 11 | + blast-radius checks, patch verification, claim validation, multi-agent intent coordination, and deterministic review |
| 12 | + receipts. |
| 13 | +- **Live Implementation Context** via `get_implementation_context`, including bounded structural context, call |
| 14 | + relationships, contract-oriented truth maps, freshness, test anchors, and active intent boundaries. Context remains |
| 15 | + read-only and never authorizes edits. |
| 16 | +- **Engineering Memory**, **Trajectory Memory**, **Patch Trail**, and **Experience Layer** for typed repository |
| 17 | + knowledge, historical agent workflows, change evidence, reusable patterns, and human-governed promotion. |
| 18 | +- **Semantic retrieval** with optional LanceDB hybrid search, FTS5/BM25, vector search, and deterministic Reciprocal |
| 19 | + Rank Fusion. |
| 20 | +- **Platform Observability** for development-time tracing of CLI, MCP, analysis phases, database activity, semantic |
| 21 | + indexing, worker chains, memory/CPU use, MCP payload pressure, and costly no-ops. |
| 22 | +- **Corpus Analytics** for offline intent clustering, interpretability, versioned profiles, sweep comparison, maintainer |
| 23 | + selection, and inspectable JSON/HTML outputs. |
| 24 | +- **Module Map** as a deterministic report-only package/module graph with cycle, hub, overloaded-module, and |
| 25 | + unwind-candidate views. |
| 26 | +- **Guided Finding Review** as a prioritized report-only review queue with shared finding cards, filters, progress |
| 27 | + tracking, and reviewed-state persistence. |
| 28 | +- **Native agent and IDE integrations** for VS Code, Claude Desktop, Claude Code, Codex, and Cursor, including |
| 29 | + governance, audit, memory, trajectory, and structural-review workflows. |
| 30 | +- Expanded controller, memory, trajectory, analytics, semantic-search, observability, blast-radius, patch-verification, |
| 31 | + and diagnostic CLI/MCP surfaces. |
| 32 | +- Reorganized documentation into a contract-focused 00–26 book with unified integration guidance and explicit edition |
| 33 | + tiers. |
| 34 | +- MCP schemas now include parameter descriptions, deterministic `next_tool` guidance, token-budget tracking, workspace |
| 35 | + hygiene warnings, and documentation-contract linting. |
| 36 | + |
| 37 | +### Contract changes |
| 38 | + |
| 39 | +- Cache schema advanced to **2.9** for the rebuildable per-function relationship-fact projection and to **2.10** for |
| 40 | + intra-module, class-method, and receiver-aware call resolution. |
| 41 | +- Engineering Memory schema advanced to **1.7** for trajectory and Patch Trail evidence. |
| 42 | +- Corpus Analytics store schema advanced to **1.2**. |
| 43 | +- Corpus Analytics JSON export schema advanced through **1.2** and **1.3**. |
| 44 | +- Corpus Analytics representation contract advanced to **3**. |
| 45 | +- Corpus Analytics control-plane contract introduced at **1.0**. |
| 46 | +- `derived.module_map` and `derived.review_queue` remain report-only projections excluded from the integrity digest; |
| 47 | + they add no analysis pass, metrics family, or report schema bump. |
| 48 | +- Live Implementation Context relationship facts remain off the canonical report and do not change canonical report |
127 | 49 | identity. |
128 | | -* **Corpus Analytics profiles and selection control (Slice 1.2).** Added |
129 | | - versioned bundled and repository-local profile manifests, finite |
130 | | - profile-scoped sweeps, separate suitability and profile-aware ranking, |
131 | | - immutable profile batch receipts, configurable ordinary sweep grids, manual |
132 | | - clustering parameters, and append-only maintainer selection events. Store |
133 | | - schema is now `1.2`; JSON export schema `1.3` adds control-plane contract |
134 | | - `1.0`, profile context/summary, and active selection without changing |
135 | | - technical-validity semantics. |
136 | | -* **Module map.** A default-on, report-only `derived.module_map` projection |
137 | | - reprojects existing dependency and overloaded-module facts into deterministic |
138 | | - package/module graph views and unwind-candidate triage rows for refactor |
139 | | - scoping. A new `Module map` HTML tab (between Quality and Dependencies) renders |
140 | | - the precomputed graph with a Packages/Modules zoom toggle, candidate/cycle/hub |
141 | | - cues, a truncation notice on sampled graphs, and full-size unwind and |
142 | | - top-overloaded tables. `get_report_section(section="module_map")` returns the |
143 | | - projection directly. No new analysis pass, metrics family, or report schema |
144 | | - bump — `derived` stays excluded from the integrity digest. |
145 | | -* **Guided finding review.** A default-on, report-only `derived.review_queue` |
146 | | - projection orders the existing suggestions into a prioritized, cross-family |
147 | | - actionable queue (severity, priority, family, location, effort) with summary |
148 | | - counts. A new `Review` HTML tab (between Overview and Clones) renders it as a |
149 | | - walkable list of shared finding cards with a per-finding reviewed toggle |
150 | | - (persisted in `localStorage`), a progress bar, and severity/family filters; the |
151 | | - `Overview` tab gains a launchpad banner that links into it. A new shared |
152 | | - `finding_card` component centralizes the card chrome now used by the |
153 | | - Suggestions, Review, and Structural Findings surfaces. No new analysis pass, |
154 | | - metrics family, or report schema bump — `derived` stays excluded from the |
155 | | - integrity digest. |
156 | | - |
157 | | -Changed |
158 | | - |
159 | | -* The default project workspace moved from .cache/codeclone/ to |
160 | | - .codeclone/; legacy locations now produce a migration warning. |
161 | | -* Documentation builds now use Zensical with strict, clean builds. |
162 | | -* pydantic is now a base dependency. |
163 | | -* LCOM4 excludes Protocol methods and Pydantic validation/serialization hooks; |
164 | | - computed_field remains part of cohesion analysis. |
165 | | -* Repository test coverage is enforced at >=99%. |
166 | | - |
167 | | -Fixed |
168 | | - |
169 | | -* Durable memory writes. Engineering Memory now uses |
170 | | - synchronous=FULL, preserving committed drafts across unclean MCP process |
171 | | - exits. Intent and audit stores retain recovery-oriented |
172 | | - synchronous=NORMAL. |
173 | | -* Atomic memory ingestion. persist_batch no longer commits records and |
174 | | - subjects mid-batch; it now defers the commit so a later failure in the same |
175 | | - batch rolls back the whole ingestion instead of leaving half-written records |
176 | | - behind. Standalone store writes keep their previous commit-on-write behavior. |
177 | | -* Observable best-effort failures. The non-fatal audit-event writer and the |
178 | | - best-effort finish-payload memory proposer no longer swallow exceptions with |
179 | | - zero signal; each now increments an observability counter (audit.emit_dropped, |
180 | | - memory.propose_candidate_dropped) on its fallback path, so silent drops stay |
181 | | - countable in the cockpit. Both remain non-fatal and the telemetry never |
182 | | - re-raises. |
183 | | -* Compact implementation-context misses. get_implementation_context no longer |
184 | | - emits the full empty facet scaffolding (structural_context, budget_summary, |
185 | | - dataflow, call_context, uncertainties) when an explicit symbol query resolves |
186 | | - nothing. The subject_not_found response now returns only the unresolved |
187 | | - subject, a slim provenance block, the projection digest, and an actionable |
188 | | - next_steps list, so a miss does not burn agent context. |
189 | | -* Memory lifecycle correctness. Draft records are no longer marked stale |
190 | | - before human promotion. Trajectory rebuilds now deduplicate superseded |
191 | | - projections, repoint evidence, remove stale workflow rows, and preserve |
192 | | - bounded claim-validation citations. |
193 | | -* Workspace hygiene and intent attribution. Finish blocks only on missing |
194 | | - evidence or foreign dirty overlap. Out-of-scope dirt is advisory, |
195 | | - continue_own_wip supports resuming owned work, queued foreign intents no |
196 | | - longer create false overlaps, and recoverable intents do not grant foreign |
197 | | - attribution. |
198 | | -* Patch verification correctness. Identical before/after runs are rejected |
199 | | - for structural and governance profiles. Negative health deltas now surface a |
200 | | - regression advisory, and Claim Guard warns when review text overstates patch |
201 | | - quality. |
202 | | -* Semantic retrieval correctness and cost. Hybrid search now preserves |
203 | | - lexical and vector relevance through RRF instead of allowing metadata ranking |
204 | | - to suppress strong matches. Per-source vector retrieval prevents dense lanes |
205 | | - from crowding out other sources. Embedding providers load lazily, failures |
206 | | - preserve documented fallback behavior, and redundant projection jobs are |
207 | | - coalesced or deferred. |
208 | | -* Architecture and import boundaries. Blast-radius graph logic moved into |
209 | | - codeclone/analysis/blast_radius.py, removing the CLI-to-MCP dependency |
| 50 | + |
| 51 | +### Changed |
| 52 | + |
| 53 | +- Default project workspace moved from `.cache/codeclone/` to `.codeclone/`; legacy paths emit a migration warning. |
| 54 | +- Documentation builds now use Zensical with strict clean builds. |
| 55 | +- `pydantic` is now a base dependency. |
| 56 | +- LCOM4 excludes Protocol methods and Pydantic validation/serialization hooks; `computed_field` remains included. |
| 57 | +- Repository coverage is enforced at **>=99%**. |
| 58 | + |
| 59 | +### Fixed |
| 60 | + |
| 61 | +- Engineering Memory writes are durable and batch ingestion is atomic. |
| 62 | +- Best-effort audit and memory-proposal failures are now observable instead of silently swallowed. |
| 63 | +- Implementation-context misses return a compact actionable payload instead of empty scaffolding. |
| 64 | +- Memory, trajectory, and Patch Trail lifecycle handling now avoids premature staleness, duplicate projections, stale |
| 65 | + workflow rows, and broken evidence links. |
| 66 | +- Workspace hygiene, intent attribution, continuation of owned work, queue handling, and recoverable-intent behavior |
| 67 | + were corrected. |
| 68 | +- Patch verification now rejects identical before/after runs where required, surfaces health regressions, and warns on |
| 69 | + overstated review claims. |
| 70 | +- Semantic retrieval now preserves lexical/vector relevance, avoids source crowding, loads embeddings lazily, and |
| 71 | + coalesces redundant projection work. |
| 72 | +- Blast-radius graph logic moved into `codeclone/analysis/blast_radius.py`, removing the CLI-to-MCP dependency |
210 | 73 | violation. |
211 | | -* Regression accuracy. respect_pyproject=false no longer reports |
212 | | - golden-fixture clone groups as false new regressions. Documentation URLs, |
213 | | - plugin references, and contract tests were updated after the documentation |
214 | | - reorganization. |
| 74 | +- `respect_pyproject=false` no longer reports golden-fixture clone groups as false new regressions. |
| 75 | +- Documentation URLs, integration references, and contract tests were aligned with the reorganized site. |
215 | 76 |
|
216 | 77 | ## [2.0.2] - 2026-05-19 |
217 | 78 |
|
|
0 commit comments