Skip to content

docs(codemachine): refresh blueprint and plans#2

Merged
teacurran merged 33 commits into
mainfrom
codemacine/dev
Nov 12, 2025
Merged

docs(codemachine): refresh blueprint and plans#2
teacurran merged 33 commits into
mainfrom
codemacine/dev

Conversation

@teacurran

Copy link
Copy Markdown
Owner

docs(codemachine): refresh blueprint and plans

Scaffold app/core/infrastructure placeholders to enforce clean layering.

Align CI and docs with melos commands for consistent workspace tooling.
Add docs README describing architecture diagrams and rendering steps.

Introduce system context and container diagrams with synced PNG/SVG outputs.

Update component overview metadata and mark iteration task complete.

Bump analyzer toolchain dependencies in packages/core/pubspec.lock.
Introduce docs/ui token registry and exporter CLI to keep theme

source of truth shared between design and Flutter.

Adopt the generated WireTuner theme so the app uses tokenized

colors, typography, and spacing consistently.
Add matrix quality gate job so CI enforces format, lint, and tests.

Document the gates, PR checklist, and contributing flow to align teams.

Capture persistence decisions with ADRs, ERD diagrams, and Prisma schema.
Add SQLite-backed EventStoreServiceAdapter with batching

integrity checks and CRUD workflows.

Introduce schema migration harness and bump DatabaseProvider

to schema v2 with verification.

Document event store columns and add integration tests

plus CLI integrity script.
Add GraphQL SDL, Yoga server, and schema lint tooling.

Document telemetry OpenAPI spec and sample operations.
Implement background isolate serialization with memory guards,

adaptive cadence, and timer-based triggers per ADR-0003/0004.

Refresh snapshot schema defaults and document the implementation

with comprehensive unit coverage.
Link blueprint flows to PlantUML diagrams and add rendering notes.

Capture completion details in iteration plan and mark task I2.T4 done.

Refresh analyzer dependencies via pub get to keep tooling current.
Introduce centralized TelemetryConfig and guard mixin to gate client metrics, structured logging, and OTLP export. Add collector service, docs, and tests covering opt-out and compliance flows.

BREAKING CHANGE: TelemetryService now requires TelemetryConfig input.
Look up shortcuts in ToolRegistry so hotkeys switch registered tools.

Add tool_registration module and tests for built-in tool metadata.

Mark I3.T1 task done in CodeMachine artifact tracker.
Introduce NavigatorWindow shell, provider state, and service actions.

Cover grid, card, provider, and service behavior with widget and unit tests.
Introduce inspector and layer modules with providers and docs.

Add telemetry performance overlay with persistence and settings.

Extend telemetry service metrics and cover modules with tests.
Implement WebSocket OT gateway with auth, Redis fanout, and presence.

Expose Dart client via infrastructure package for Flutter integration.

Document protocol and cover OT transforms and sessions with tests.
Adds window manager, navigator root, and artboard wrappers for lifecycle

persistence, including viewport saving hooks.

Adds window state repository and loosens undo provider coupling.

Introduces platform thumbnail stubs and comprehensive window tests.
Introduce JsonExporter for archival snapshots with validation.

Extend SvgExporter for multi-artboard and per-artboard workflows.

Add export dialog UI plus JSON and SVG unit coverage for regressions.
Add infrastructure importer to convert AI PDF operators into events.

Surface conversion warnings so UI can explain import limitations.

Document warning catalog and add dialog plus tests for AI import.
Capture final validation results, remaining prerequisites, and

updated release readiness status across QA reports.
…lization

This commit addresses multiple critical bugs preventing the application from
compiling and rendering correctly after the artboard architecture migration.

**Compilation Fixes:**
- Fixed null safety errors across editor shell, thumbnail generator, and tools
- Updated all code to use artboard-based document structure instead of deprecated
  document-level layers and selection fields
- Added default artboard initialization to prevent null reference errors

**Artboard Migration:**
- Updated DocumentProvider methods (updateViewport, updateSelection, updateLayers)
  to work with first artboard instead of document-level fields
- Fixed editor_shell, thumbnail_generator, selection_tool, direct_selection_tool,
  and document_event_applier to access layers/selection through artboards
- Added helper methods in tools to get active artboard

**Selection & Event System:**
- Implemented selection event handling (SelectObjectsEvent, DeselectObjectsEvent,
  ClearSelectionEvent) in DocumentEventApplier
- Added auto-selection for newly created paths and shapes
- Fixed selection state management to work with artboard-level selection

**Anchor Point Visualization:**
- Implemented differentiated anchor point rendering based on type:
  * Corner points (straight segments) → white squares with black/colored borders
  * Smooth/Bezier points (curved segments) → white circles with black/colored borders
- Enhanced pen tool preview overlay to track and render all placed anchors during
  path creation with correct shape indicators
- Updated selection overlay to render anchor shapes based on AnchorType
- Added PreviewAnchor class to track both position and type information

**Shape Rendering:**
- Added fill rendering for shapes (light gray fill with stroke)
- Shapes now render with visible fills making them clearly distinguishable
- Fixed shape persistence and rendering in DocumentPainter

This fixes the compilation blockers and implements proper visual feedback for
anchor point types, making it clear which points create corners vs curves.
…h fills and strokes

The render pipeline was enabled by default but doesn't support shapes - only paths.
This caused shapes to not render at all (no fills or outlines visible).

Changes:
- Disable render pipeline by default in wiretuner_canvas.dart
  - Changed enableRenderPipeline default from true to false
  - Added documentation explaining why it's disabled (shapes not supported)
- Add debug logging throughout rendering pipeline for troubleshooting:
  - DocumentPainter: logs path/shape counts and which renderer is used
  - _CanvasAdapter: logs object extraction from layers
  - ShapeToolBase: logs pointer events and shape creation
- Fix selection overlay to show all anchor points when object is selected
  - Previously only showed anchors if specific anchors were selected
  - Now shows all anchors when object is selected (no specific anchor selection)

With render pipeline disabled, DocumentPainter uses legacy _paintLegacy which:
- Renders shapes with light gray fills
- Renders shapes with black stroke outlines
- Properly handles both path and shape rendering

Issue: Shapes were invisible (no fills or outlines) even though they were being
created and appearing in the layers panel.

Root cause: Render pipeline's _paintWithPipeline ignores shapes map entirely.

Fix: Use legacy renderer until shape support is added to render pipeline.
@teacurran teacurran merged commit 647bea9 into main Nov 12, 2025
1 of 8 checks passed
@teacurran teacurran deleted the codemacine/dev branch November 12, 2025 04:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant