Bill
bd05b8a68f
Step 107: add diff preview view
2026-02-09 11:44:37 -07:00
Bill
26cab0dee0
Step 106: add transform history panel
2026-02-09 11:08:57 -07:00
Bill
f7da8eee8d
Step 105: add optimization controls panel
2026-02-09 11:02:25 -07:00
Bill
8a85ba298d
Step 104: add cross-language projection action
2026-02-09 10:57:25 -07:00
Bill
d627a7a588
Step 103: add side-by-side generated view
2026-02-09 10:52:23 -07:00
Bill
60ae9e2d70
Step 102: memory strategy dashboard
2026-02-09 10:41:54 -07:00
Bill
7738c3d6b4
Step 101: annotation conflict highlighting
2026-02-09 10:39:48 -07:00
Bill
865cb3efa6
Step 100: memory strategy suggestions
2026-02-09 10:36:06 -07:00
Bill
b987d45939
Step 99: annotation context menu
2026-02-09 10:32:19 -07:00
Bill
ad922fca7e
Step 98: inline annotation decorations
2026-02-09 10:28:59 -07:00
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
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
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
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
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