Files
whetstone_DSL/sprint39_plan.md

83 lines
3.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Sprint 39 Plan: Self-Hosting + Release Pipeline
## Context
Sprint 39 makes Whetstone build itself and ship as a product. Self-hosting
validates the entire constructive editing model on a real, complex C++ project.
The release pipeline (AppImage, HiveMind-push auto-update, plugin system) turns
the editor into something deployable across the drone fleet.
Primary goals:
1. Whetstone opens and navigates its own codebase
2. CMake build system generated from project AST
3. In-editor test runner replaces external build cycle
4. AppImage packaging + HiveMind auto-update mechanism
5. Plugin system for third-party language generators
---
## Phase 39a: Self-Hosting Pipeline (Steps 644648)
### Step 644: `.whetstone.json` for the editor project itself (12 tests)
The Whetstone project describes itself using its own config format. This validates
that the config system works for real C++ projects, not just toy examples.
Also: the editor can open itself and navigate its own AST.
### Step 645: CMake generator from Whetstone project description (12 tests)
Given a project AST, generate CMakeLists.txt. Supports: FetchContent deps,
vcpkg integration, test targets, install rules. Lets Whetstone regenerate its own
build system from the AST — the ultimate self-hosting test.
### Step 646: In-editor test runner (12 tests)
Run the Whetstone test suite (stepNNN_test binaries) from within the chat panel:
[Run Tests] button → streams output → shows pass/fail per step → links failures
to the relevant source file. Replaces the external build+test cycle.
### Step 647: Self-modification safety guard (12 tests)
Detect when an agent-requested mutation targets a file that is part of the running
editor binary. Block with: "Cannot mutate live binary — use a build/restart cycle."
Prevents the editor from corrupting its own running code.
### Step 648: Phase 39a Integration (8 tests)
Self-hosting demo: open whetstone_DSL project in the editor → ask agent to add a
new MCP tool → agent generates the header, wires it in CMake → in-editor test
runner validates → self-modification guard active.
---
## Phase 39b: Distribution + Plugin System (Steps 649653)
### Step 649: AppImage / .deb package generator (12 tests)
Generate packaging scripts from project metadata. Output: working AppImage build
script and debian/control. Makes `whetstone` installable as a system package.
Runs as a CI step in the project.
### Step 650: HiveMind-push auto-update mechanism (12 tests)
Drone worker type: `update_editor`. When HiveMind publishes a new editor version
to the apiary, drones on all nodes receive the update job, download the AppImage,
verify hash, replace binary, restart service. Zero-touch updates across the fleet.
### Step 651: Language generator plugin manifest (12 tests)
Define a plugin format: a .so / shared library that exports a `ProjectionGenerator`
subclass. Third parties can add new language generators without recompiling the
editor. Plugin discovery: scan workspace for whetstone-plugin-*.so.
### Step 652: Privacy-preserving local telemetry (12 tests)
Collect: session length, tool call counts, error rates, most-used generators.
Store locally in ~/.whetstone/telemetry.db. Aggregate weekly report. Never
transmits externally. Feeds the Active Inference engine's entropy scoring.
### Step 653: Sprint 39 Integration + Summary (8 tests)
Full release pipeline validated: build → package → AppImage → HiveMind deploy
→ all nodes updated. Plugin system tested with a new language generator.
---
## Step & Test Summary
| Phase | Steps | Tests | Theme |
|-------|-------|-------|-------|
| 39a | 644648 | 56 | Self-hosting + CMake generator + in-editor test runner |
| 39b | 649653 | 56 | AppImage + HiveMind auto-update + plugin system |
| **Total** | **644653** | **~112** | 10 steps |