Commit Graph

10 Commits

Author SHA1 Message Date
dishant-kumar-thakur
d54e2a55a0 feat(phase-10): STRUCT-003 import engine core
Task: STRUCT-003
Branch: cline-dev-dishant
Cross-branch notes: none -- no shared dependencies with Richard phase 9/6 work

- ProjectImporter class (pure, filesystem-agnostic)
- Converts v2 multi-file format back to legacy project.json
- unflattenNodes: reconstructs recursive tree from flat NodeV2 array (two-pass)
- toLegacyName: uses preserved component.path for perfect round-trip fidelity
- Metadata merge: routes/styles merged back into project.metadata
- stateParameters -> stateParamaters reversal (legacy typo preserved)
- Non-fatal warnings: component failures collected, not thrown
- 55 unit tests in tests/io/ProjectImporter.test.ts
  - unflattenNodes: 11 cases
  - toLegacyName: 4 cases
  - ProjectImporter.import(): 20 cases
  - Round-trip (export -> import): 20 cases
- Updated tests/io/index.ts to export importer tests
- Updated PROGRESS-dishant.md: STRUCT-001/002/003 all marked complete
2026-02-19 01:07:22 +05:30
dishant-kumar-thakur
fbce66e0db feat(phase-10): STRUCT-002 export engine core
Task: STRUCT-002
Branch: cline-dev-dishant
Cross-branch notes: none  no shared dependencies with Richard's phase 9/6 work

- ProjectExporter class (pure, filesystem-agnostic)
- Converts legacy project.json to v2 multi-file format
- Outputs: nodegx.project.json, nodegx.routes.json, nodegx.styles.json,
  components/_registry.json, per-component component.json/nodes.json/connections.json
- Helper exports: legacyNameToPath, inferComponentType, flattenNodes, countNodes
- Full legacy type definitions (LegacyProject, LegacyComponent, LegacyNode, etc.)
- 50 unit tests in tests/io/ProjectExporter.test.ts
- Registered in tests/index.ts
2026-02-19 00:23:33 +05:30
dishant-kumar-thakur
f8d59cce0b feat(schemas): STRUCT-001 - JSON Schema Definition for v2 project format
Add 8 JSON schemas, SchemaValidator with Ajv v8, TS interfaces, and 33 tests.
All smoke tests passing. Critical path for STRUCT-002 (Export Engine).
2026-02-18 23:45:51 +05:30
dishant-kumar-thakur
83278b4370 feat(editor): CF11-007 canvas execution overlay
- Add ExecutionOverlay React component with header, node badges, data popup, timeline scrubber

- Add ExecutionNodeBadge: status badge positioned in canvas-space at each node

- Add ExecutionDataPopup: floating popup showing input/output/error data for selected node

- Add ExecutionTimeline: fixed scrubber bar with Prev/Next, range input, step dots

- Add #execution-overlay-layer DOM layer to nodegrapheditor.html

- Wire renderExecutionOverlay/updateExecutionOverlay into nodegrapheditor.ts

- Wire ExecutionHistoryPanel pin button via EventDispatcher execution:pinToCanvas event

- Add 20 unit tests for overlay utility functions

- Update PROGRESS-dishant.md: CF11-006 and CF11-007 both complete
2026-02-18 23:20:52 +05:30
dishant-kumar-thakur
7d373e0e50 feat(phase-11): CF11-006 Execution History Panel UI
- ExecutionHistoryPanel React component registered in sidebar (order 8.8)
- ExecutionList + ExecutionItem: scrollable list with status dots, duration, trigger type
- ExecutionDetail: summary, error display, trigger data, node steps
- NodeStepList + NodeStepItem: expandable rows with input/output JSON
- ExecutionFilters: status dropdown filter with clear button
- useExecutionHistory hook: IPC-based data fetching with filter support
- useExecutionDetail hook: single execution fetch with steps
- All styles use design tokens (no hardcoded colors)
- Unit tests: formatDuration, formatRelativeTime, buildExecutionQuery (Jasmine)
- CF11-007 canvas overlay integration point: onPinToCanvas prop stub

IPC channels expected from backend:
  execution-history:list (ExecutionQuery) -> WorkflowExecution[]
  execution-history:get (id) -> ExecutionWithSteps
2026-02-18 21:34:45 +05:30
Richard Osborne
297dfe0269 Added sprint protocol 2026-02-18 15:59:52 +01:00
Richard Osborne
ddcb9cd02e feat: Phase 5 BYOB foundation + Phase 3 GitHub integration
Phase 5 - BYOB Backend (TASK-007A/B):
- LocalSQL Adapter with full CloudStore API compatibility
- QueryBuilder translates Parse-style queries to SQL
- SchemaManager with PostgreSQL/Supabase export
- LocalBackendServer with REST endpoints
- BackendManager with IPC handlers for Electron
- In-memory fallback when better-sqlite3 unavailable

Phase 3 - GitHub Panel (GIT-004):
- Issues tab with list/detail views
- Pull Requests tab with list/detail views
- GitHub API client with OAuth support
- Repository info hook integration

Phase 3 - Editor UX Bugfixes (TASK-013):
- Legacy runtime detection banners
- Read-only enforcement for legacy projects
- Code editor modal close improvements
- Property panel stuck state fix
- Blockly node deletion and UI polish

Phase 11 - Cloud Functions Planning:
- Architecture documentation for workflow automation
- Execution history storage schema design
- Canvas overlay concept for debugging

Docs: Updated LEARNINGS.md and COMMON-ISSUES.md
2026-01-15 17:37:15 +01:00
Richard Osborne
6f08163590 new code editor 2026-01-11 09:48:20 +01:00
Richard Osborne
908ad18451 Started changing brand name to OpenNoodl 2024-08-14 22:59:06 +02:00
Michael Cartner
b9c60b07dc Initial commit
Co-Authored-By: Eric Tuvesson <eric.tuvesson@gmail.com>
Co-Authored-By: mikaeltellhed <2311083+mikaeltellhed@users.noreply.github.com>
Co-Authored-By: kotte <14197736+mrtamagotchi@users.noreply.github.com>
Co-Authored-By: Anders Larsson <64838990+anders-topp@users.noreply.github.com>
Co-Authored-By: Johan  <4934465+joolsus@users.noreply.github.com>
Co-Authored-By: Tore Knudsen <18231882+torekndsn@users.noreply.github.com>
Co-Authored-By: victoratndl <99176179+victoratndl@users.noreply.github.com>
2024-01-26 11:52:55 +01:00