Steps 266-268: Phase 10a — semantic annotation core + sidecar persistence (32/32 tests)

Step 266: 5 semantic annotation AST types (Intent, Complexity, Risk,
Contract, SemanticTag) with JSON roundtrip and compact AST integration.
Step 267: Sidecar AST persistence (.whetstone/<file>.ast.json) with
save/load/list RPC methods, MCP tools, and permission enforcement.
Step 268: Phase 10a integration tests — multi-file sidecar workflow,
all 5 types in compact view, idempotent roundtrip, source isolation.

Also includes Sprint 10 plan, GUI/installer polish, and Emacs integration fixes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Bill
2026-02-12 16:01:56 +00:00
parent c36fd92045
commit 976161dc4a
36 changed files with 2999 additions and 69 deletions

View File

@@ -20,11 +20,11 @@ inline BufferManager::BufferMode EditorState::defaultBufferMode() const {
inline void EditorState::createBuffer(const std::string& path, const std::string& content,
const std::string& language,
BufferManager::BufferMode mode = BufferManager::BufferMode::Text,
size_t fileSizeBytes = 0,
bool largeFileMode = false,
bool disableSyntaxHighlight = false,
bool deferAstSync = false) {
BufferManager::BufferMode mode,
size_t fileSizeBytes,
bool largeFileMode,
bool disableSyntaxHighlight,
bool deferAstSync) {
BufferManager::BufferMode effectiveMode = mode;
if (language == "org") effectiveMode = BufferManager::BufferMode::Text;
if (buffers.hasBuffer(path)) {
@@ -346,8 +346,8 @@ inline void EditorState::doSave() {
}
inline void EditorState::doOpen(const std::string& path,
BufferManager::BufferMode modeOverride = BufferManager::BufferMode::Text,
bool deferAstSync = false) {
BufferManager::BufferMode modeOverride,
bool deferAstSync) {
std::error_code sizeErr;
size_t fileSizeBytes = 0;
if (!path.empty()) {
@@ -544,4 +544,3 @@ inline void EditorState::insertTextAtCursor(const std::string& text) {
// --- Projection and lifecycle helpers (extracted) ---
#include "BufferOpsProjection.h"
#include "BufferOpsLifecycle.h"