mirror of
https://github.com/The-Low-Code-Foundation/OpenNoodl.git
synced 2026-03-07 17:43:28 +01:00
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
OpenNoodl Development Documentation
Welcome to the OpenNoodl development docs. This folder contains everything needed for AI-assisted development with Cline and human contributors alike.
⚡ About OpenNoodl
OpenNoodl is an Electron desktop application for visual low-code development.
- The editor is a desktop app (Electron) where developers build applications
- The viewer/runtime creates web applications that run in browsers
- This documentation focuses on the editor (Electron app)
Important: When you run npm run dev, an Electron window opens automatically - you don't access it through a web browser. The webpack dev server at localhost:8080 is internal to Electron and should not be opened in a browser.
📁 Structure
dev-docs/
├── .clinerules # Project rules (copy to repo root)
├── README.md # This file
├── CLINE-INSTRUCTIONS.md # Custom instructions for Cline
├── TASK-TEMPLATE.md # Template for creating new tasks
│
├── guidelines/ # Development standards
│ ├── CODING-STANDARDS.md # Code style and patterns
│ ├── TESTING-GUIDE.md # How to write tests
│ └── GIT-WORKFLOW.md # Branch and commit conventions
│
├── reference/ # Quick reference materials
│ ├── CODEBASE-MAP.md # Navigate the codebase
│ ├── NODE-PATTERNS.md # How to create nodes
│ └── COMMON-ISSUES.md # Troubleshooting guide
│
└── tasks/ # Task documentation
├── phase-1/ # Foundation tasks
│ ├── TASK-001-dependency-updates/
│ ├── TASK-002-typescript-cleanup/
│ └── ...
├── phase-2/ # Navigation & data tasks
└── phase-3/ # UX & integration tasks
🚀 Getting Started
For Cline Users
-
Copy
.clinerulesto repo rootcp dev-docs/.clinerules .clinerules -
Add custom instructions to Cline
- Open VSCode → Cline extension settings
- Paste contents of
CLINE-INSTRUCTIONS.mdinto Custom Instructions
-
Pick a task
- Browse
tasks/folders - Each task has its own folder with detailed instructions
- Start with Phase 1 tasks (they're prerequisites for later phases)
- Browse
For Human Contributors
- Read
guidelines/CODING-STANDARDS.md - Check
reference/CODEBASE-MAP.mdto understand the project - Pick a task from
tasks/and follow its documentation
📋 Task Workflow
Starting a Task
-
Read the task documentation completely
tasks/phase-X/TASK-XXX-name/ ├── README.md # Full task description ├── CHECKLIST.md # Step-by-step checklist ├── CHANGELOG.md # Track your changes here └── NOTES.md # Your working notes -
Create a branch
git checkout -b task/XXX-short-name -
Follow the checklist, checking off items as you go
-
Document everything in CHANGELOG.md
Completing a Task
- Ensure all checklist items are complete
- Run tests:
npm run test:editor - Run type check:
npx tsc --noEmit - Update CHANGELOG.md with final summary
- Create pull request with task ID in title
🎯 Current Priorities
Phase 1: Foundation (Do First)
- TASK-000: Dependency Analysis Report (Research/Documentation)
- TASK-001: Dependency Updates & Build Modernization
- TASK-002: Legacy Project Migration & Backward Compatibility
Phase 2: Core Systems
- TASK-003: Navigation System Overhaul
- TASK-004: Data Nodes Modernization
Phase 3: UX Polish
- TASK-005: Property Panel Overhaul
- TASK-006: Import/Export Redesign
- TASK-007: REST API Improvements
📚 Key Resources
| Resource | Description |
|---|---|
| Codebase Map | Navigate the monorepo |
| Coding Standards | Style and patterns |
| Node Patterns | Creating new nodes |
| Common Issues | Troubleshooting |
🤝 Contributing
- Pick an unassigned task or create a new one using
TASK-TEMPLATE.md - Follow the task documentation precisely
- Document all changes in the task's CHANGELOG.md
- Submit PR with comprehensive description
❓ Questions?
- Check
reference/COMMON-ISSUES.mdfirst - Search existing task documentation
- Open an issue on GitHub with the
questionlabel