Bill
5cf7bf575f
Step 97: annotation gutter markers
2026-02-09 10:25:58 -07:00
Bill
5fdb21d74d
Step 94a: AST source spans
2026-02-09 10:22:13 -07:00
Bill
f84258bffc
Step 96: LSP server configuration
2026-02-09 10:14:40 -07:00
Bill
5f30fd5044
Step 95: diagnostic squiggles
2026-02-09 10:10:25 -07:00
Bill
360a9fa26a
Step 94: Whetstone diagnostics layer
2026-02-09 10:05:58 -07:00
Bill
ede4166af3
Step 93: LSP hover and signature help
2026-02-09 10:02:03 -07:00
Bill
0916026448
Step 92: LSP auto-completion
2026-02-09 09:59:25 -07:00
Bill
e3439b2a3d
Step 91: LSP diagnostics integration
2026-02-09 09:55:48 -07:00
Bill
9083e05471
Step 90: LSP client core
2026-02-09 09:49:29 -07:00
Bill
94a77b6890
Step 89: file watching and auto-reload
2026-02-09 09:40:47 -07:00
Bill
23e3758cca
Step 88: drag-and-drop open
2026-02-09 09:38:57 -07:00
Bill
a1efe93ba3
Step 87: welcome screen
2026-02-09 09:37:12 -07:00
Bill
9f8ee09b4c
Step 86: multi-tab editing
2026-02-09 09:35:00 -07:00
Bill
6da8b36347
Step 85: filesystem tree explorer
2026-02-09 09:29:01 -07:00
Bill
c195128034
Step 84: native file dialogs
2026-02-09 09:26:54 -07:00
Bill
c9553590e7
Step 83: add new tree-sitter grammars
2026-02-09 09:22:03 -07:00
Bill
c040f6f936
Step 82: minimap
2026-02-09 09:14:47 -07:00
Bill
8bad31e94c
Step 81: code folding
2026-02-09 09:12:34 -07:00
Bill
225e0f50a0
Step 80: selection and clipboard
2026-02-09 09:10:01 -07:00
Bill
c66d80c0e8
Step 79: auto-indent and smart editing
2026-02-09 09:07:53 -07:00
Bill
b18e41c6d0
Step 78: line numbers and gutter
2026-02-09 09:06:07 -07:00
Bill
65b714547f
Step 77: custom code editor renderer
2026-02-09 09:04:12 -07:00
Bill
a65e0b13ee
Step 76: LayoutManager with docking layout presets (Sprint 4 start)
...
Three preset layouts (VSCode/Emacs/JetBrains) with panel visibility,
size ratios, dirty flag for rebuild, and file-based persistence.
Also includes revised sprint4_plan.md and new sprint5_plan.md.
10/10 tests pass.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-09 08:22:02 -07:00
Bill
dc94ad7274
Sprint 3 complete: Phases 3g+3h (Steps 68-75), all 75 steps done
...
Phase 3g — Optimization Pipeline (17/17 tests):
Step 68: TransformEngine — constant folding, dead code elimination, OptimizationLock warning
Step 69: StrategyAwareOptimizer — annotation-constrained (@Reclaim allows, @Owner blocks duplication, @Deallocate blocks reorder, @Allocate blocks dynamic)
Step 70: StrategyValidator — post-optimization invariants (use-after-free, leak, aliasing)
Step 71: IncrementalOptimizer — transform journal, undo by ID, provenance tracking
Phase 3h — Integration & Validation (26/26 tests):
Step 72: Pipeline — end-to-end parse→infer→validate→optimize→generate for Python/C++
Step 73: Error handling — empty ASTs, null roots, nonexistent IDs, unannotated code
Step 74: Performance benchmarks — 1000-fn AST 1ms, JSON round-trip 4ms, 50 transforms+undo 1ms
Step 75: APIDocGenerator — structured docs for 23 components across 6 categories
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-09 07:35:37 -07:00
Bill
650e8557ae
Phase 3f complete: Advanced Memory Management (Steps 64-67)
...
Step 64: AnnotationValidator — @Deallocate missing-intent, @Owner(Single) alias detection, parent/child conflict (5/5 tests)
Step 65: MemoryStrategyInference — language defaults, per-function pattern analysis, confidence scores (5/5 tests)
Step 66: CrossLanguageProjector — deep-copy AST projection, annotation-aware CppGenerator (shared_ptr/unique_ptr) (5/5 tests)
Step 67: Optimization annotations — HotCold, Inline, Pure, ConstExpr with C++ attribute generation (9/9 tests)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-08 20:57:58 -07:00
Bill
7fb9e89e25
Phase 3e complete: Agent API Extend (Steps 59, 61-63)
...
Step 59: WebSocketAgentServer with session management, JSON-RPC routing, MockWebSocketTransport (10/10 tests)
Step 61: ASTMutationAPI with setProperty, updateNode, deleteNode, insertNode, journal, OptimizationLock warning (6/6 tests)
Step 62: ContextAPI with getInScopeSymbols, getCallHierarchy, getDependencyGraph (6/6 tests)
Step 63: BatchMutationAPI with atomic applySequence and reverse-order rollback (5/5 tests)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-08 20:57:39 -07:00
Bill
e92e904a6d
3d finished
2026-02-08 16:31:20 -07:00
Bill
bb7981d4d7
Phase 3d complete: editor infrastructure (Steps 55-58)
...
Step 55: WelcomeScreen (actions, recent files, tips, visibility) - 7/7 tests
Step 56: ElispCommandBuilder + MockEmacsConnection (escaping, daemon lifecycle) - 6/6 tests
Step 57: BufferManager (multi-file open/close/switch, language/modified tracking) - 7/7 tests
Step 58: EditorMode (per-language indent, comment toggle, bracket pairs, snippets) - 8/8 tests
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-08 16:27:22 -07:00
Bill
16cc60b36c
Wire up GUI: functional editor with VSCode Dark theme and docking layout
...
Rewrote main.cpp from Step 12 scaffold to full editor shell. Added tree-sitter
linking to whetstone_editor target. Fixed WMOD_ prefix to avoid Windows SDK
MOD_SHIFT/MOD_ALT macro conflicts. Editor now has editable text area, live AST
view, syntax-highlighted preview, generated code tab, find/replace, keybinding
profile selector, and status bar.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-08 16:21:22 -07:00
Bill
5190e12b89
Phase 3c complete: syntax highlighting and configurable keybindings (Steps 52, 54)
...
Step 52: SyntaxHighlighter walks tree-sitter CST to produce colored
token spans (keyword, string, comment, number, function, parameter,
type, operator, etc.) for Python, C++, and Elisp.
Step 54: KeybindingManager with swappable profiles — VSCode (default),
JetBrains, and Emacs. Each profile maps 25+ actions (file, edit,
search, nav, view, code, build) to key combos. Supports custom
overrides and reverse lookup.
Design direction: editor targets VSCode/JetBrains look-and-feel.
Keybinding profile selectable at startup. VSCode is default.
Phase 3c totals: 37/37 tests pass across 5 steps (50-54).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-08 16:12:10 -07:00
Bill
742c33d813
Phase 3c: Classical editing mode (Steps 50-53)
...
Implement TextASTSync and TextEditor — the core text editing layer
that bridges raw text and the structured AST. TextASTSync provides
bidirectional text-AST sync with debounce via TreeSitterParser and
generators. TextEditor wraps a text buffer with edit operations,
undo/redo that tracks AST state, find/replace, and selection.
New files: TextASTSync.h, TextEditor.h, step50_test.cpp
Updated: step51/53 tests (replaced stubs with real includes),
CMakeLists.txt (tree-sitter linking), PROGRESS.md
Fixed: step53 find-position off-by-one, canRedo assert logic
19/19 tests pass (step50: 8, step51: 5, step53: 6)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-08 15:45:59 -07:00
Bill
41166812b0
Phase 3b: Real tree-sitter integration (Steps 45-49)
...
Replace TreeSitterParser stubs with real tree-sitter C bindings for
Python, C++, and Elisp parsing. Add tree-sitter core via vcpkg and
language grammars via FetchContent. Implement CST-to-AST converters
with auto-annotation, memory pattern detection, error recovery, and
ParseResult/ParseDiagnostic types. All 34 tests pass (6+7+6+8+7).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-08 09:06:50 -07:00
Bill
7c0b0c759e
Sprint 3 Step 60: AST query API implementation
...
- Implement ASTQueryAPI class with tree walking, JSON output,
findNodesByType, findNodesByProperty, findNodesWithAnnotation
- Add nlohmann_json link for step60_test in CMakeLists.txt
- Add PROGRESS.md for cross-session continuity tracking
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-07 22:54:18 -07:00
Bill
89bcf805bc
Fix editor hang when launched without orchestrator
...
The JsonRpcClient was reading from stdin on startup, blocking forever
when no orchestrator process was piped in. Now defaults to disconnected
state and skips RPC calls, falling back to sample content.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-07 22:25:12 -07:00
Bill
e08fc9e0e0
Add build infrastructure, installer scripts, and fix build errors
...
- Create vcpkg.json manifest with all editor dependencies
- Create CMakePresets.json for Windows (MSVC) and Linux (GCC)
- Create Inno Setup installer script (setup.iss) with file associations
- Create Windows build helper (build.ps1) with vcpkg auto-install
- Create Linux build/install scripts (build.sh, install.sh)
- Vendor imgui SDL2 backend locally (removed from vcpkg imgui 1.91+)
- Switch CMakeLists.txt from FetchContent to vcpkg find_package
- Fix ElispGenerator missing pure virtual overrides for memory annotations
- Fix Orchestrator::findNodeById const-correctness
- Fix orchestrator_main.cpp loadFile/saveFile type mismatches
- Fix main.cpp SDL_GL_SwapBuffers -> SDL_GL_SwapWindow
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-07 22:15:50 -07:00
Bill
d0a039e567
Sprint 2 Step 38: OptimizationLock warnings
2026-02-07 10:53:35 -07:00
Bill
ea79d2b484
Sprint 2 Step 37: Agent batch mode
2026-02-07 10:49:48 -07:00
Bill
e6044f92e4
Sprint 2 Step 36: Agent API
2026-02-07 10:46:17 -07:00
Bill
5404fa24b0
Sprint 2 Step 35: C++ generator — memory strategies
2026-02-07 10:42:49 -07:00
Bill
6f8c2341dd
Sprint 2 Step 34: C++ generator — basic output
2026-02-07 10:38:03 -07:00
Bill
4515443860
Sprint 2 Step 33: Elisp round-trip
2026-02-07 10:32:35 -07:00
Bill
4ff40064c7
Sprint 2 Step 32: Tree-sitter import integration
2026-02-07 09:44:31 -07:00
Bill
b00610508b
Step 71 TDD test: Incremental optimization with rollback
...
Tests IncrementalOptimizer: transforms recorded in history, undoLast
restores original AST, undo specific transform by ID while keeping
others, and provenance tracking (node knows which transform created it).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-07 08:32:59 -07:00
Bill
5ba255cbca
Step 70 TDD test: Cross-strategy validation
...
Tests StrategyValidator: use-after-free detection for @Deallocate(Explicit),
leaked allocation detection, @Owner(Single) aliasing detection, clean code
passes validation, violations include node IDs for diagnostics.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-07 08:32:11 -07:00
Bill
26cf9bc9fb
Step 69 TDD test: Strategy-aware optimization
...
Tests StrategyAwareOptimizer: @Reclaim(Tracing) allows free restructuring,
@Owner(Single) blocks duplication/aliasing, @Deallocate(Explicit) blocks
reordering around dealloc, @Allocate(Static) blocks dynamic allocation.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-07 08:31:30 -07:00
Bill
01a094f28e
Step 68 TDD test: Transformation engine
...
Tests TransformEngine: constant folding (3+4->7), dead code elimination
after return, OptimizationLock produces warning but doesn't block, and
no-op when nothing to transform. Defines TransformEngine interface.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-07 08:30:51 -07:00
Bill
89778c4b02
Step 67 TDD test: Optimization annotations
...
Tests HotColdAnnotation, InlineAnnotation, PureAnnotation, ConstExprAnnotation
classes exist. Tests C++ generation: @Hot->__attribute__((hot)),
@Cold->__attribute__((cold)), @Inline(Always)->always_inline,
@Pure->[[nodiscard]], @ConstExpr->constexpr.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-07 08:30:09 -07:00
Bill
1a1416472b
Step 66 TDD test: Cross-language memory projection
...
Tests Lossless Projection Logic: Python @Reclaim(Tracing)->C++ shared_ptr,
C++ @Deallocate(Explicit)->Python wrapper, @Owner(Single) preserved in
Python metadata, round-trip annotation preservation, @Lifetime(RAII)->
unique_ptr. Defines CrossLanguageProjector interface.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-07 08:29:33 -07:00
Bill
52b59428f2
Step 65 TDD test: Memory strategy inference
...
Tests MemoryStrategyInference: Python->@Reclaim(Tracing), C++ gets
suggestions, inference does NOT auto-apply to AST, suggestions have
confidence scores and reasons, Elisp->@Reclaim(Tracing).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-07 08:28:51 -07:00
Bill
880ecda73e
Step 64 TDD test: Memory annotation validation
...
Tests AnnotationValidator: valid @Reclaim(Tracing) passes,
@Deallocate(Explicit) without dealloc -> Missing Intent error,
@Owner(Single) aliasing -> error, conflicting parent/child annotations,
and valid @Lifetime(RAII) passes.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-07 08:28:18 -07:00