Commit Graph

64 Commits

Author SHA1 Message Date
Richard Osborne
d1dacbd999 Merge branch 'cline-dev-richard' into cline-dev 2026-02-18 21:30:07 +01:00
Richard Osborne
2990e47059 Bug fixes on git 2026-02-18 21:03:36 +01:00
dishant-kumar-thakur
1e78b5e279 feat(phase-10): STRUCT-004 project format detection utility
Task: STRUCT-004
Branch: cline-dev-dishant
Cross-branch notes: none -- no shared dependencies with Richard phase 9/6 work

- ProjectFormatDetector class (injectable filesystem, fully testable)
- detect() async + detectSync() sync variants
- Detects legacy (project.json) vs v2 (nodegx.project.json + _registry.json)
- Returns { format, confidence, indicators } for transparent decision-making
- Scoring system: v2 needs score >= 2 to avoid false positives
- Errors in exists() treated as not-found (graceful degradation)
- V2_INDICATORS / LEGACY_INDICATORS sentinel constants exported
- createNodeDetector() factory for Node.js/test contexts
- Convenience methods: getFormat(), isV2(), isLegacy()
- 30 tests in tests/io/ProjectFormatDetector.test.ts
  - detect(): 12 cases (all combinations, async fs, error handling)
  - detectSync(): 4 cases (incl. throws on async fs)
  - Convenience methods: 7 cases
  - Constants: 3 cases
  - createNodeDetector() integration: 4 cases (real tmp dirs)
- Updated tests/io/index.ts to export detector tests
- Updated PROGRESS-dishant.md: STRUCT-001/002/003/004 all marked complete
2026-02-19 01:19:46 +05:30
Richard Osborne
ade2afee85 feat(uba): UBA-008/009 panel registration + health indicator
UBA-008: Register UBAPanel in editor sidebar (router.setup.ts)
UBA-009: Health indicator widget in Configure tab
  - useUBAHealth hook polling UBAClient.health() every 30s
  - HealthBadge component: 4 states (unknown/checking/healthy/unhealthy)
  - Pulsing animation on checking; design token colours with fallbacks
  - Shown only when schema.backend.endpoints.health is present

Test fix: UBASchemaParser.test.ts
  - isFailure<T>() type guard for webpack ts-loader friendly narrowing
  - eslint-disable for destructuring discard patterns
2026-02-18 20:43:03 +01:00
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
Richard Osborne
6403341bcc docs(sprint-2): update PROGRESS-richard.md + add TS async IIFE union narrowing learning 2026-02-18 20:20:49 +01:00
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
Richard Osborne
c04bf2e6cb feat(uba): UBA-003/004 field renderers + ConfigPanel + Conditions 2026-02-18 18:23:10 +01:00
dishant-kumar-thakur
748ec07bd4 docs(sprint-1): update PROGRESS-dishant.md CF11-006 complete, session 1 done 2026-02-18 22:46:11 +05:30
Richard Osborne
ab34ee4d50 docs(uba): sprint-1 session-2 progress — STYLE-005 + UBA-001/002 done 2026-02-18 17:38:55 +01:00
Richard Osborne
1e350aebee docs(infra): document Jest/webpack test runner gotchas 2026-02-18 17:22:21 +01:00
Richard Osborne
64e565f00f test(styles): STYLE-005 StyleAnalyzer unit tests (17 cases)
Covers: hex/rgb color detection, spacing detection, variant candidate
threshold logic, toSuggestions ordering, stable IDs, edge cases.

Infra note: tests in tests/models/ — use 'npm run test:editor' not
'npx jest' directly (webpack build required by test-editor.ts script).
'npx jest' alone hangs on webpack. Move tests to tests/models/ not
tests/services/ — transform config only covers models/ path.
2026-02-18 17:14:52 +01:00
Richard Osborne
d3c9ef27b9 docs(phase-9): mark WIZARD-001 complete, document Jest infra gotcha 2026-02-18 16:46:06 +01:00
dishant-kumar-thakur
10cf761d52 chore(sprint-1): Dishant branch setup PROGRESS files + .clinerules section
Branch: cline-dev-dishant
Cross-branch notes: Richard completed STYLE-001 Phase 3+4 and CLEANUP-000H (Phase 9 styles only). No shared dependencies with Phase 11 or Phase 10 scope.
2026-02-18 21:10:12 +05:30
Richard Osborne
c425769633 docs(sprint-1): update PROGRESS-richard.md — session 1 complete 2026-02-18 16:24:33 +01:00
Richard Osborne
297dfe0269 Added sprint protocol 2026-02-18 15:59:52 +01:00
Richard Osborne
bf07f1cb4a Added new github integration tasks 2026-01-18 14:38:32 +01:00
Richard Osborne
addd4d9c4a Fixed Logic Builder node bugs, expression field bugs, code editor bugs, property panel bugs 2026-01-16 17:23:31 +01:00
Richard Osborne
32a0a0885f Finished prototype local backends and expression editor 2026-01-16 12:00:31 +01:00
Richard Osborne
94c870e5d7 docs: mark TASK-007 Integrated Backend as complete
Phase 5 BYOB now at 43% (3/7 tasks complete):
- TASK-007A: LocalSQL Adapter 
- TASK-007B: Local Backend Server 
- TASK-007C: WorkflowRunner 
- TASK-007D: Launcher UI 

Schema viewer/editor will be developed separately.
2026-01-15 21:06:54 +01:00
Richard Osborne
1c40f45195 docs: update TASK-007 progress (4/6 subtasks complete) 2026-01-15 18:31:40 +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
dd73b1339b docs: update progress for TASK-007A/B and CF11-004/005
- Phase 11 PROGRESS.md: Mark CF11-004/005 complete, TASK-007B complete
- TASK-007 README: Update testing checklist with completion status
- Both docs now accurately reflect current implementation state
2026-01-15 17:34:30 +01:00
Richard Osborne
72c9989a68 feat(runtime): add LocalSQL adapter for CloudStore interface
TASK-007A: LocalSQL Adapter (Phase 5/Phase 11 shared foundation)

- Add LocalSQLAdapter implementing CloudStore interface with SQLite backend
- Add QueryBuilder for Parse-style query to SQL translation
- Add SchemaManager for table creation, migrations, and exports
- Support all CloudStore methods: query, fetch, create, save, delete
- Support aggregate, distinct, increment, count operations
- Support relations via junction tables
- Add schema export to PostgreSQL and Supabase formats
- Add comprehensive unit tests for QueryBuilder

This adapter enables:
- Local offline database for development
- Foundation for Phase 11 execution history storage
- Schema migration path to production databases
2026-01-15 16:04:24 +01:00
Richard Osborne
39fe8fba27 Finished Blockly prototype, updated project template json 2026-01-12 13:23:12 +01:00
Richard Osborne
a64e113189 docs(blockly): Document integration bugs and create TASK-012B
Session 3: Bug Investigation & Documentation

Discovered critical issues during user testing:
- Canvas rendering broken (DOM conflict with React)
- Logic Builder button crashes (model API error)
- CSS positioning issues

Root Cause:
- Attempted to wrap legacy canvas in React tabs
- Canvas is vanilla JS/jQuery, not React-compatible
- Created duplicate DOM containers causing conflicts

Resolution:
- Created TASK-012B with detailed fix plan
- Approach: Separate canvas and Logic Builder completely
- Use visibility toggle instead of tab replacement
- Canvas = Desktop, Logic Builder = Windows overlay

Files Created:
- TASK-012B-integration-bugfixes.md (complete task doc)

Files Updated:
- CHANGELOG.md (Session 3, status update)

Key Learning: Don't try to wrap legacy jQuery/vanilla JS in React.
Keep them completely separate with event coordination.

Next: Implement TASK-012B fixes (~1 hour)
2026-01-11 14:51:35 +01:00
Richard Osborne
d601386d0d docs(blockly): Phase C documentation complete
- Created PHASE-C-COMPLETE.md with full architecture overview
- Updated CHANGELOG with Session 2 details
- Complete feature summary and testing checklist
- Ready for manual testing and user feedback

Phase A-C Status: COMPLETE 
Next: Phase D (Testing & Polish)
2026-01-11 14:11:31 +01:00
Richard Osborne
c2f1ba320c docs(blockly): Complete Phase B1 documentation
- Updated PHASE-B1-COMPLETE.md with test results and bugfix info
- Updated CHANGELOG.md with testing confirmation
- Added color scheme learning to LEARNINGS.md
- Phase B1 is complete and tested successfully
2026-01-11 13:48:38 +01:00
Richard Osborne
45b458c192 docs(blockly): Add Phase B1 completion document
Documents successful node registration and provides manual testing checklist
2026-01-11 13:38:13 +01:00
Richard Osborne
df4ec4459a docs(blockly): Update CHANGELOG for Phase A completion 2026-01-11 13:30:49 +01:00
Richard Osborne
554dd9f3b4 feat(blockly): Phase A foundation - Blockly setup, custom blocks, and generators
- Install blockly package (~500KB)
- Create BlocklyWorkspace React component with serialization
- Define custom Noodl blocks (Input/Output, Variables, Objects, Arrays)
- Implement JavaScript code generators for all custom blocks
- Add theme-aware styling for Blockly workspace
- Export initialization functions for easy integration

Part of TASK-012: Blockly Visual Logic Integration
2026-01-11 13:30:13 +01:00
Richard Osborne
6f08163590 new code editor 2026-01-11 09:48:20 +01:00
Richard Osborne
7fc49ae3a8 Tried to complete Github Oauth flow, failed for now 2026-01-10 00:04:52 +01:00
Richard Osborne
67b8ddc9c3 Added custom json edit to config tab 2026-01-08 13:27:38 +01:00
Richard Osborne
4a1080d547 Refactored dev-docs folder after multiple additions to organise correctly 2026-01-07 20:28:40 +01:00
Richard Osborne
beff9f0886 Added new deploy task to fix deployments duplicating the index.js file 2026-01-06 17:34:05 +01:00
Richard Osborne
3bf411d081 Added styles overhaul task docs 2026-01-06 00:27:56 +01:00
Richard Osborne
d144166f79 Tried to add data lineage view, implementation failed and requires rethink 2026-01-04 22:31:21 +01:00
Richard Osborne
bb9f4dfcc8 feat(topology): shelve Topology Map panel due to visual quality issues
- Disable Topology Map panel in router.setup.ts
- Comment out panel registration (line ~85)
- Add comprehensive SHELVED.md documentation explaining:
  * Why feature was shelved (SVG text layout complexity, visual quality)
  * What was implemented (graph analysis, folder aggregation, etc.)
  * Lessons learned and better approaches for future
  * Alternative enhancement suggestions
- Code remains in codebase for potential future revival
- Recommend React Flow or HTML/CSS approach instead of SVG
2026-01-04 20:07:25 +01:00
Richard Osborne
eb90c5a9c8 Added three new experimental views 2026-01-04 00:17:33 +01:00
Richard Osborne
2845b1b879 Added initial github integration 2026-01-01 21:15:51 +01:00
Richard Osborne
cfaf78fb15 Finished node canvas UI tweaks. Failed to add connection highlighting 2026-01-01 16:11:21 +01:00
Richard Osborne
2e46ab7ea7 Fixed visual issues with new dashboard and added folder attribution 2025-12-31 21:40:47 +01:00
Richard Osborne
73b5a42122 initial ux ui improvements and revised dashboard 2025-12-31 09:34:27 +01:00
Richard Osborne
ae7d3b8a8b New data query node for Directus backend integration 2025-12-30 11:55:30 +01:00
Richard Osborne
6fd59e83e6 Finished HTTP node creation and extensive node creation documentation in project 2025-12-29 08:56:46 +01:00
Richard Osborne
fad9f1006d Finished component sidebar updates, with one small bug remaining and documented 2025-12-28 22:07:29 +01:00
Richard Osborne
5f8ce8d667 Working on the editor component tree 2025-12-23 09:39:33 +01:00