Commit Graph

69 Commits

Author SHA1 Message Date
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
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
Bill
605fddc600 Step 63 TDD test: Batch operations (extend)
Tests applySequence: successful batch of 3, failed batch rolls back
all preceding mutations, journal recording, empty batch, and 5-mutation
batch with error at step 3 rolling back all 5.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 08:27:36 -07:00
Bill
761e37b369 Step 62 TDD test: Context API
Tests getInScopeSymbols with nested scoping (inner sees outer, not
vice versa), getCallHierarchy for caller/callee tracking, and
getDependencyGraph for data flow. Defines ContextAPI interface.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 08:26:57 -07:00
Bill
9a7d180522 Step 61 TDD test: AST mutation API (extend)
Tests setProperty, updateNode bulk update, journal recording,
OptimizationLock warning on mutation (not rejection), deleteNode,
and insertNode. Defines ASTMutationAPI interface.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 08:26:14 -07:00
Bill
16b7384cd0 Step 60 TDD test: AST query API
Tests ASTQueryAPI: getAST returns JSON, findNodesByType for Functions/
Parameters/VariableReferences, findNodesByProperty by name,
findNodesWithAnnotation, and getSubtree with depth limit.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 08:25:37 -07:00
Bill
f438005413 Step 57 TDD test: Buffer management
Tests BufferManager: open/close/switch buffers, multiple buffers
tracked simultaneously, buffer content retrieval, language tracking,
and modification flag. Defines BufferManager interface.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 08:24:58 -07:00
Bill
9df08cbe18 Step 56 TDD test: Robust Emacs command integration
Tests ElispCommandBuilder for escaping, findFile/saveBuffer Elisp
generation, paths with spaces, and EmacsConnection daemon management
with ensureDaemon and error handling.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 08:24:23 -07:00
Bill
e287e96470 Step 53 TDD test: Classical editing operations
Tests text undo/redo with bidirectional AST sync, find/replaceAll,
selection, and verifies AST stays consistent through edit operations.
Defines TextEditor interface.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 08:23:48 -07:00
Bill
76ae96cdb4 Step 51 TDD test: Text-AST synchronization
Tests bidirectional sync: text->parse->AST, AST mutation->text regen,
round-trip preservation, debounce coalescing of rapid edits, and
C++ text sync. Defines TextASTSync interface.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 08:23:11 -07:00
Bill
e0c5bf2a9e Step 47 TDD test: Tree-sitter Elisp integration
Tests parseElisp() with defun parsing, parameter extraction, BinaryOperation
from (+ x 1), auto-annotation with @Reclaim(Tracing), and cross-language
equivalence with Python AST output.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 08:22:35 -07:00
Bill
6666109f38 Step 46 TDD test: Tree-sitter C++ integration
Tests parseCpp() produces real AST: Function with name and return type,
typed Parameters, and memory pattern detection: unique_ptr->@Lifetime(RAII),
shared_ptr->@Owner(Shared_ARC), raw new/delete->@Deallocate(Explicit).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 08:22:00 -07:00
Bill
d8a67cfe10 Step 45 TDD test: Tree-sitter Python integration
Tests parsePython() produces real AST: Function with name, Parameters,
Return with BinaryOperation, and auto-annotation with @Reclaim(Tracing).
Tests multiple functions parsed. Will fail until real tree-sitter-python
replaces the placeholder stub.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 08:21:27 -07:00
Bill
7a847c4f03 Step 44 TDD test: C++-specific idioms
Tests FunctionCall, const reference parameters via LangSpecific annotation,
#include directives, using namespace declarations, void return type,
IndexAccess bracket notation, and MemberAccess dot/arrow notation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 08:20:41 -07:00
Bill
d966eae2cf Step 43 TDD test: Memory strategy code generation
Tests canonical annotation classes (DeallocateAnnotation, LifetimeAnnotation,
ReclaimAnnotation, OwnerAnnotation, AllocateAnnotation) exist and inherit from
Annotation. Tests C++ generation: @Deallocate(Explicit)->raw pointers,
@Lifetime(RAII)->unique_ptr, @Reclaim(Tracing)->shared_ptr,
@Owner(Shared_ARC)->shared_ptr. Verifies old DerefStrategy backward compat.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 08:20:04 -07:00
Bill
5952c51cb9 Step 42 TDD test: C++ type generation
Tests PrimitiveType mapping (int, string->std::string, bool, float->double),
ListType->std::vector, MapType->std::map, SetType->std::unordered_set,
OptionalType->std::optional, CustomType, and typed function parameters.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 08:19:25 -07:00
Bill
07f40c4786 Step 41 TDD test: C++ expression generation
Tests BinaryOperation, UnaryOperation, VariableReference, all literals
(int, float, string, bool, null->nullptr), FunctionCall, and nested
expression parenthesization for CppGenerator.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 08:18:51 -07:00
Bill
217a38a2c8 Step 40 TDD test: C++ statement generation
Tests Assignment, Return, IfStatement, WhileLoop, ForLoop produce
correct C++ syntax with semicolons, braces, and parentheses.
Verifies no Python syntax leaks through.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 08:18:13 -07:00
Bill
fe32389271 Step 39 TDD test: CppGenerator basic skeleton
Tests CppGenerator inherits ProjectionGenerator, generates namespace
from Module, produces C++ function signatures with types and braces,
and does NOT emit Python syntax. Will fail to compile until
CppGenerator is implemented.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 08:17:35 -07:00
Bill
6643b7c2c7 Sprint 3 plan and docs: adopt canonical annotation system from annotations/Memory strategy.md
- Add Sprint 3 plan (37 steps, global 39-75) with canonical memory annotations,
  test quality requirements, global step numbering, and Sprint 2 overlap notes
- Refactor all docs to use canonical annotation families (@Deallocate, @Lifetime,
  @Reclaim, @Owner, @Allocate) replacing simplified @deref 4-strategy system
- Replace @perf with canonical @Hot/@Cold, @Inline, @Pure from annotations/6 optimization
- Replace @memory-footprint, @execution-mode, @deref-explicit with canonical equivalents
- Update REQUIREMENTS_OVERVIEW, SPRINT_1_REQUIREMENTS, SPRINT_2_PLAN, SPRINT_2_VISION,
  C++ Implementation Roadmap, example files, and progress report
- Remove duplicate bonus steps 41-42, consolidate Phase 3h from 7 to 4 steps

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 08:11:23 -07:00
Bill
ab05001068 Sprint 2 Step 38: Final integration test 2026-02-07 07:01:23 -07:00
Bill
c69e1a4250 Sprint 2 Step 37: Emacs ↔ AST synchronization 2026-02-07 06:52:35 -07:00
Bill
7dc31f48a7 Sprint 2 Step 36: Lock warnings in UI 2026-02-07 06:19:10 -07:00
Bill
8f39c8edfb Sprint 2 Step 35: Optimization lock annotations 2026-02-07 05:31:36 -07:00
Bill
e4f9cfb78d Sprint 2 Step 34: Full round-trip 2026-02-06 23:50:56 -07:00
Bill
9e080bebfe Sprint 2 Step 33: Export via generator 2026-02-06 23:47:18 -07:00
Bill
0bbfc36ebe Sprint 2 Step 32: Import via tree-sitter 2026-02-06 23:41:36 -07:00
Bill
7a943da12d Sprint 2 Step 31: Tree-sitter integration 2026-02-06 23:35:12 -07:00
Bill
3e338b35a6 Sprint 2 Step 30: Emacs ↔ MPS synchronization 2026-02-06 23:30:34 -07:00
Bill
9f2373f335 Sprint 2 Step 29: AST ↔ File synchronization 2026-02-06 23:19:58 -07:00
Bill
d499a930da Sprint 2 Step 28: File operations via RPC 2026-02-06 23:12:59 -07:00
Bill
06227401ef Sprint 2 Step 27: File operations via Emacs 2026-02-06 23:07:48 -07:00
Bill
78efb99f63 Sprint 2 Step 26: Orchestrator ↔ Emacs RPC 2026-02-06 22:43:07 -07:00
Bill
767c4557f5 Sprint 2 Step 25: AST ↔ Elisp projection 2026-02-06 22:27:19 -07:00
Bill
5f0c74dec2 Sprint 2 Step 24: Orchestrator spawns Emacs 2026-02-06 22:15:46 -07:00
Bill
00a5c8430d Sprint 2 Step 23: Emacs integration 2026-02-06 21:55:58 -07:00
Bill
dfa40b7802 Sprint 2 Step 22: Undo/Redo UI 2026-02-06 21:48:25 -07:00
Bill
3b80ff4250 Sprint 2 Step 21: Undo/Redo journal 2026-02-06 21:45:02 -07:00
Bill
b0b917eed1 Sprint 2 Step 20: Mutation via UI 2026-02-06 21:37:45 -07:00