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

@@ -54,6 +54,45 @@ else
exit 1
fi
missing_tools=()
for tool in git curl zip unzip tar; do
if ! command -v "$tool" &>/dev/null; then
missing_tools+=("$tool")
fi
done
if ((${#missing_tools[@]} > 0)); then
echo "ERROR: Missing required tools: ${missing_tools[*]}"
echo "Install on Ubuntu/Debian: sudo apt-get install -y git curl zip unzip tar"
exit 1
fi
# vcpkg ports like gperf require autotools from the host system.
missing_autotools=()
for tool in autoconf autoreconf automake libtoolize; do
if ! command -v "$tool" &>/dev/null; then
missing_autotools+=("$tool")
fi
done
if ((${#missing_autotools[@]} > 0)); then
echo "ERROR: Missing required autotools: ${missing_autotools[*]}"
echo "Install on Ubuntu/Debian: sudo apt-get install -y autoconf autoconf-archive automake libtool"
exit 1
fi
if ! python3 -c "import ensurepip" >/dev/null 2>&1; then
echo "ERROR: Python ensurepip is unavailable (venv creation will fail)."
echo "Install on Ubuntu/Debian: sudo apt-get install -y python3-venv python3.12-venv"
exit 1
fi
if ! pkg-config --exists gl; then
echo "ERROR: OpenGL development files are missing (pkg-config 'gl' not found)."
echo "Install on Ubuntu/Debian: sudo apt-get install -y libgl1-mesa-dev libglx-dev libopengl-dev"
exit 1
fi
# --- Install system dependencies if requested ---
if $USE_SYSTEM_PACKAGES; then
@@ -63,8 +102,11 @@ if $USE_SYSTEM_PACKAGES; then
sudo apt-get update -qq
sudo apt-get install -y -qq \
build-essential cmake \
libsdl2-dev libgl1-mesa-dev libglew-dev \
nlohmann-json3-dev
libsdl2-dev libgl1-mesa-dev libglx-dev libopengl-dev \
nlohmann-json3-dev \
curl zip unzip tar \
autoconf autoconf-archive automake libtool \
python3-venv python3.12-venv
elif command -v dnf &>/dev/null; then
sudo dnf install -y \
gcc-c++ cmake \
@@ -99,8 +141,24 @@ if ! $USE_SYSTEM_PACKAGES; then
if [[ -z "$VCPKG_ROOT" ]]; then
step "Bootstrapping vcpkg"
VCPKG_ROOT="$HOME/vcpkg"
git clone https://github.com/microsoft/vcpkg.git "$VCPKG_ROOT"
"$VCPKG_ROOT/bootstrap-vcpkg.sh" -disableMetrics
if [[ -d "$VCPKG_ROOT" ]]; then
echo " Existing vcpkg directory found at $VCPKG_ROOT"
if [[ ! -x "$VCPKG_ROOT/vcpkg" ]]; then
if [[ -d "$VCPKG_ROOT/.git" ]]; then
git -C "$VCPKG_ROOT" pull --ff-only || true
fi
if [[ -x "$VCPKG_ROOT/bootstrap-vcpkg.sh" ]]; then
"$VCPKG_ROOT/bootstrap-vcpkg.sh" -disableMetrics
else
echo "ERROR: Existing vcpkg directory is incomplete: $VCPKG_ROOT"
echo "Delete it or pass --vcpkg-root to a valid vcpkg checkout."
exit 1
fi
fi
else
git clone https://github.com/microsoft/vcpkg.git "$VCPKG_ROOT"
"$VCPKG_ROOT/bootstrap-vcpkg.sh" -disableMetrics
fi
fi
echo " vcpkg: $VCPKG_ROOT"
@@ -141,7 +199,8 @@ cmake "${CMAKE_ARGS[@]}"
step "Building ($CONFIG)"
cmake --build "$BUILD_DIR" --config "$CONFIG" --parallel "$(nproc)"
cmake --build "$BUILD_DIR" --config "$CONFIG" --parallel "$(nproc)" \
--target whetstone_editor orchestrator
echo " Build succeeded."

View File

@@ -42,7 +42,11 @@ if command -v apt-get &>/dev/null; then
sudo apt-get install -y -qq \
build-essential cmake git \
libsdl2-dev libgl1-mesa-dev \
nlohmann-json3-dev
libglx-dev libopengl-dev \
nlohmann-json3-dev \
curl zip unzip tar \
autoconf autoconf-archive automake libtool \
python3-venv python3.12-venv
elif command -v dnf &>/dev/null; then
sudo dnf install -y \
gcc-c++ cmake git \
@@ -69,7 +73,7 @@ if $DO_BUILD; then
# Use the build script if available
if [[ -x "$SCRIPT_DIR/build.sh" ]]; then
"$SCRIPT_DIR/build.sh" --config Release --system-packages
"$SCRIPT_DIR/build.sh" --config Release
else
mkdir -p "$BUILD_DIR"
cmake -S "$EDITOR_DIR" -B "$BUILD_DIR" -DCMAKE_BUILD_TYPE=Release