Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
0b01111
Bump version to 0.2.2-alpha
mvalancy Sep 3, 2025
639c0da
Merge branch 'main' into develop
mvalancy Sep 3, 2025
2b888f4
Simplify node editing with enhanced inline editing capabilities
Patel230 Sep 4, 2025
73267a2
Fix graph persistence and disable context menu
Patel230 Sep 4, 2025
50538f8
Restore context menu functionality for empty space interactions
Patel230 Sep 4, 2025
2e0add2
Fix arrow colors to update immediately when edge types change
Patel230 Sep 4, 2025
055cda0
Add type-specific hover colors for nodes
Patel230 Sep 4, 2025
5f05ee3
Clean up graph interface by removing legend and create button
Patel230 Sep 4, 2025
bf272cb
Update dashboard card hover effects and reorder DEFAULT type to first…
Patel230 Sep 4, 2025
611a2d9
Enhance NodeDetailsModal with colorful icons and improved styling
Patel230 Sep 4, 2025
e66369f
Improve text positioning and spacing in Create Graph modal
Patel230 Sep 4, 2025
a67340a
Enhance Edit Graph modal with modern styling and improved UX
Patel230 Sep 4, 2025
7bebe93
Enhance Delete Graph modal with modern styling and improved UX
Patel230 Sep 4, 2025
d7a0089
Fix tag database persistence and enhance graph modal consistency
Patel230 Sep 4, 2025
7fd72d2
Enhance Graph Panel with modern styling and premium visual design
Patel230 Sep 4, 2025
fa97b38
Enhance NodeDetailsModal with premium design and improved functionality
Patel230 Sep 4, 2025
e564739
Fix double position issue in relationship selector dropdown
Patel230 Sep 5, 2025
b136702
Enhance Edge Details panel with modern design and dynamic width
Patel230 Sep 5, 2025
176e4d3
Enhance context menu with professional glassmorphism design and smoot…
Patel230 Sep 5, 2025
4341cba
Make GraphDone text clickable for navigation to main workspace
Patel230 Sep 5, 2025
267fe23
Fix duplicate connections in DisconnectNodeModal and improve node tit…
Patel230 Sep 5, 2025
171abc6
Fix TypeScript type conflicts in WorkItem interfaces
Patel230 Sep 5, 2025
c8f19e6
Enhance view components with relationship indicators and improved UX
Patel230 Sep 5, 2025
369f333
Fix TypeScript errors and enhance view styling with type-specific bor…
Patel230 Sep 5, 2025
b0300a8
Centralize node type colors to use single source of truth
Patel230 Sep 5, 2025
8011624
Centralize gradient system to eliminate code duplication
Patel230 Sep 5, 2025
d52e5d6
Enhance Dashboard with status-based gradients and improved hover effects
Patel230 Sep 5, 2025
1010035
Enhance Dashboard charts with themed gradients and improved styling
Patel230 Sep 5, 2025
b47345f
Transform Dashboard legend into modern card-based layout
Patel230 Sep 5, 2025
55cf7eb
Transform RightSidebar with dynamic CardView styling and intelligent …
Patel230 Sep 5, 2025
d3663c2
Standardize hover effects and remove emojis from project health
Patel230 Sep 6, 2025
d4427f9
Fix Docker development environment and remove PostgreSQL dependencies
mvalancy Sep 6, 2025
2c487ce
Add comprehensive TLS implementation plan and security roadmap
mvalancy Sep 7, 2025
c323aaf
Add comprehensive AI agents integration documentation
mvalancy Sep 7, 2025
30ccc43
Update documentation structure and add security warnings
mvalancy Sep 7, 2025
ba8e274
Add comprehensive AI agents integration guide
mvalancy Sep 7, 2025
a856de8
Add project roadmap and release philosophy
mvalancy Sep 7, 2025
1e6382f
Update existing documentation for consistency and accuracy
mvalancy Sep 7, 2025
a3f9067
Update AI documentation to include Docker model containers
mvalancy Sep 7, 2025
55e8e7e
Update documentation for hybrid SQLite/Neo4j architecture
mvalancy Sep 7, 2025
e19a833
Add SQLite persistence and deployment documentation
mvalancy Sep 7, 2025
08ee355
Add movable relationship editor window and dialog management system
mvalancy Sep 7, 2025
9dcbb8a
Optimize graph visualization performance and eliminate unnecessary re…
mvalancy Sep 7, 2025
30daac0
Standardize UI components with consistent design language
mvalancy Sep 7, 2025
27f97ce
Enhance workspace layout and page consistency
mvalancy Sep 7, 2025
08e9743
Add comprehensive authentication security system
mvalancy Sep 7, 2025
28dd829
Update core components and constants for improved functionality
mvalancy Sep 7, 2025
48c1254
Complete application configuration and styling updates
mvalancy Sep 7, 2025
c2b4b35
Fix server lint and build errors
mvalancy Sep 7, 2025
6527400
Fix web component TypeScript errors
mvalancy Sep 7, 2025
e60da2d
Fix TypeScript compilation errors across web components
mvalancy Sep 7, 2025
3f1d0d3
Enhance Docker development environment with security and networking i…
mvalancy Sep 7, 2025
2a30a1e
Fix frontend connectivity issues with Docker internal networking
mvalancy Sep 7, 2025
2bee4f0
Enhance Backend Status page with comprehensive debugging and monitoring
mvalancy Sep 7, 2025
7fec28b
Fix ESLint and TypeScript errors in CI pipeline
mvalancy Sep 7, 2025
abc39a4
Add tropical lagoon background animation to No Graphs Available welco…
mvalancy Sep 7, 2025
cfb1052
Add comprehensive database administration tools to Backend page
mvalancy Sep 7, 2025
89e600c
Fix Database Administration tools functionality in Backend page
mvalancy Sep 7, 2025
d454a43
Implement complete Database Administration section in Admin page
mvalancy Sep 7, 2025
f17910c
Add tropical lagoon animated background to Welcome page in Workspace
mvalancy Sep 7, 2025
fe71cfc
Fix tropical lagoon background animation classes
mvalancy Sep 7, 2025
7246b5f
Update version to v0.3.1-alpha
mvalancy Sep 7, 2025
935e29c
Optimize graph visualization with smart reinitialization
mvalancy Sep 8, 2025
25abdcf
Fix camera jump when left-clicking empty space in graph
mvalancy Sep 8, 2025
c654c3d
Fix reversed mouse wheel zoom direction in graph visualization
mvalancy Sep 8, 2025
1a9ebf6
Fix broken mouse wheel zoom functionality
mvalancy Sep 8, 2025
b226107
Fix NodeJS.Timeout type error causing CI failure
mvalancy Sep 8, 2025
f043b87
Merge pull request #17 from GraphDone/feature/simplify-node-editing
mvalancy Sep 8, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,389 changes: 1,176 additions & 213 deletions CLAUDE.md

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
![Version](https://img.shields.io/badge/version-0.2.2--alpha-orange.svg)
![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)

> 🚨 **PRODUCTION SECURITY WARNING**: This project is currently configured for development only with HTTP and hardcoded passwords. See [TLS Implementation Plan](./docs/security/tls-implementation-plan.md) for required security changes before production deployment.

## What is GraphDone?

GraphDone reimagines project management as a collaborative graph where work flows through natural dependencies rather than artificial hierarchies. It's designed for high-quality individual contributors who thrive on autonomy, teams that include AI agents, and organizations ready to embrace democratic coordination.
Expand Down Expand Up @@ -257,6 +259,7 @@ Anyone can propose ideas and assign personal priority. The community validates t
- 🎯 **[Project Philosophy](./docs/philosophy.md)** - Core beliefs and design principles
- πŸš€ **[Getting Started Guide](./docs/guides/getting-started.md)** - Step-by-step setup and first steps
- πŸ—οΈ **[Architecture Overview](./docs/guides/architecture-overview.md)** - System design and technical decisions
- πŸ€– **[AI Agents Integration](./docs/guides/ai-agents-integration.md)** - Multi-agent AI system with tamagotchi-style companions
- πŸ‘₯ **[User Flows](./docs/guides/user-flows.md)** - How teams actually use GraphDone
- πŸ”Œ **[API Documentation](./docs/api/graphql.md)** - GraphQL schema and integration guide
- πŸš€ **[Deployment Guide](./docs/deployment/README.md)** - Self-hosted and cloud deployment options
Expand Down
175 changes: 134 additions & 41 deletions deployment/docker-compose.dev.yml
Original file line number Diff line number Diff line change
@@ -1,74 +1,167 @@
version: '3.8'
name: graphdone-dev

networks:
graphdone-internal:
driver: bridge

services:
postgres:
image: postgres:15-alpine
graphdone-neo4j:
container_name: graphdone-neo4j
image: neo4j:5.26.12
environment:
POSTGRES_DB: graphdone_dev
POSTGRES_USER: graphdone
POSTGRES_PASSWORD: graphdone_password
ports:
- "5432:5432"
NEO4J_AUTH: neo4j/graphdone_password
NEO4J_PLUGINS: '["graph-data-science", "apoc"]'
NEO4J_dbms_security_procedures_unrestricted: "gds.*,apoc.*"
NEO4J_dbms_security_procedures_allowlist: "gds.*,apoc.*"
# No external ports - internal network only
expose:
- "7474"
- "7687"
volumes:
- postgres_dev_data:/var/lib/postgresql/data
- ./scripts/init-db.sql:/docker-entrypoint-initdb.d/init-db.sql
- neo4j_data:/data
- logs:/logs
networks:
- graphdone-internal
# Security configurations
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
cap_add:
- CHOWN
- DAC_OVERRIDE
- FOWNER
- SETGID
- SETUID
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -U graphdone"]
test: ["CMD", "cypher-shell", "-u", "neo4j", "-p", "graphdone_password", "RETURN 1"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s

redis:
image: redis:7-alpine
ports:
- "6379:6379"
graphdone-redis:
container_name: graphdone-redis
image: redis:8-alpine
# No external ports - internal network only
expose:
- "6379"
volumes:
- redis_dev_data:/data
- redis_data:/data
networks:
- graphdone-internal
# Security configurations
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
cap_add:
- CHOWN
- SETGID
- SETUID
restart: unless-stopped
user: "999:999" # Redis user
read_only: true
tmpfs:
- /tmp:noexec,nosuid,size=100m
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
start_period: 10s

server-dev:
graphdone-api:
container_name: graphdone-api
build:
context: .
context: ..
dockerfile: packages/server/Dockerfile.dev
environment:
- NODE_ENV=development
- DATABASE_URL=postgresql://graphdone:graphdone_password@postgres:5432/graphdone_dev
- PORT=4000
- CORS_ORIGIN=http://localhost:3000
ports:
- "4000:4000"
- NEO4J_URI=bolt://graphdone-neo4j:7687
- NEO4J_USER=neo4j
- NEO4J_PASSWORD=graphdone_password
- PORT=4127
- CORS_ORIGIN=http://localhost:3127
# No external ports - internal network only
expose:
- "4127"
depends_on:
postgres:
graphdone-neo4j:
condition: service_healthy
redis:
graphdone-redis:
condition: service_healthy
volumes:
- .:/app
- /app/node_modules
- /app/packages/server/node_modules
command: npm run dev
- logs:/app/logs
- sqlite_auth_data:/app/data
networks:
- graphdone-internal
# Security configurations
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
cap_add:
- CHOWN
- DAC_OVERRIDE
- FOWNER
- SETGID
- SETUID
restart: unless-stopped
user: "1001:1001" # Non-root user
tmpfs:
- /tmp:noexec,nosuid,size=100m
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:4127/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s

web-dev:
graphdone-web:
container_name: graphdone-web
build:
context: .
context: ..
dockerfile: packages/web/Dockerfile.dev
environment:
- VITE_GRAPHQL_URL=http://localhost:4000/graphql
- VITE_GRAPHQL_WS_URL=ws://localhost:4000/graphql
- PORT=3127
- VITE_PROXY_TARGET=http://graphdone-api:4127
- VITE_GRAPHQL_URL=http://localhost:3127/graphql
- VITE_GRAPHQL_WS_URL=ws://localhost:3127/graphql
# Only expose web UI to host
ports:
- "3000:3000"
- "3127:3127"
depends_on:
- server-dev
- graphdone-api
volumes:
- .:/app
- /app/node_modules
- /app/packages/web/node_modules
command: npm run dev
- logs:/app/logs
networks:
- graphdone-internal
# Security configurations
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
cap_add:
- CHOWN
- DAC_OVERRIDE
- FOWNER
- SETGID
- SETUID
restart: unless-stopped
user: "1001:1001" # Non-root user
tmpfs:
- /tmp:noexec,nosuid,size=100m
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3127"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s

volumes:
postgres_dev_data:
redis_dev_data:
neo4j_data:
redis_data:
logs:
sqlite_auth_data:
36 changes: 23 additions & 13 deletions deployment/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
name: graphdone

services:
neo4j:
image: neo4j:5.15-community
graphdone-neo4j:
container_name: graphdone-neo4j-prod
image: neo4j:5.26.12
environment:
NEO4J_AUTH: neo4j/graphdone_password
NEO4J_PLUGINS: '["graph-data-science", "apoc"]'
Expand All @@ -11,15 +14,16 @@ services:
- "7687:7687" # Bolt
volumes:
- neo4j_data:/data
- neo4j_logs:/logs
- logs:/logs
healthcheck:
test: ["CMD", "cypher-shell", "-u", "neo4j", "-p", "graphdone_password", "RETURN 1"]
interval: 10s
timeout: 5s
retries: 5

redis:
image: redis:7-alpine
graphdone-redis:
container_name: graphdone-redis-prod
image: redis:8-alpine
ports:
- "6379:6379"
volumes:
Expand All @@ -30,33 +34,37 @@ services:
timeout: 5s
retries: 5

server:
graphdone-api:
container_name: graphdone-api-prod
build:
context: ..
dockerfile: packages/server/Dockerfile
environment:
- NODE_ENV=production
- NEO4J_URI=bolt://neo4j:7687
- NEO4J_URI=bolt://graphdone-neo4j:7687
- NEO4J_USER=neo4j
- NEO4J_PASSWORD=graphdone_password
- PORT=4127
- CORS_ORIGIN=http://localhost:3127
ports:
- "4127:4127"
depends_on:
neo4j:
graphdone-neo4j:
condition: service_healthy
redis:
graphdone-redis:
condition: service_healthy
volumes:
- ../packages/server/.env:/app/.env
- logs:/app/logs
- sqlite_auth_data:/app/data
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:4127/health"]
interval: 30s
timeout: 10s
retries: 3

web:
graphdone-web:
container_name: graphdone-web-prod
build:
context: ..
dockerfile: packages/web/Dockerfile
Expand All @@ -66,11 +74,13 @@ services:
ports:
- "3127:3127"
depends_on:
- server
- graphdone-api
volumes:
- ../packages/web/.env:/app/.env
- logs:/app/logs

volumes:
neo4j_data:
neo4j_logs:
redis_data:
redis_data:
logs:
sqlite_auth_data:
31 changes: 22 additions & 9 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
# GraphDone Documentation

**AI-Generated Content Warning: This documentation contains AI-generated content. Verify information before depending on it for decision making.**

Welcome to the GraphDone documentation! This directory contains comprehensive guides, API references, and deployment information for working with GraphDone.

## πŸ“š Documentation Structure
Expand All @@ -13,16 +11,31 @@ Welcome to the GraphDone documentation! This directory contains comprehensive gu
- Authentication and authorization

### [Developer Guides](./guides/)
- Getting started
- Core concepts
- Architecture overview
- Contributing guidelines
- [Getting Started](./guides/getting-started.md) - Setup and first steps
- [Architecture Overview](./guides/architecture-overview.md) - System design and technical decisions
- [SQLite Deployment Modes](./guides/sqlite-deployment-modes.md) - Local dev vs Docker authentication storage
- [User Flows](./guides/user-flows.md) - How teams actually use GraphDone

### πŸ€– AI Agents Documentation
> **Start here**: [Simple AI Agent Reality Check](./simple-agent-reality.md) - **What we're actually building**

**Implementation Guides**:
- [Simple AI Agent Reality Check](./simple-agent-reality.md) - 🎯 **THE PLAN**: Smart chia pet with Ollama
- [AI Agents Technical Spec](./ai-agents-tech-spec.md) - πŸ“š Complete technical implementation (advanced)
- [Agent Planning Scenarios](./agent-planning-scenarios.md) - πŸŽͺ Interactive planning examples (future)

### πŸ”’ Security & Production
> **CRITICAL FOR RELEASE**: [TLS Implementation Plan](./security/tls-implementation-plan.md) - **Required before production**

**Security Documentation**:
- [TLS Implementation Plan](./security/tls-implementation-plan.md) - 🚨 **MUST READ**: HTTPS, SSL certificates, secrets management
- [Production Security Checklist](./security/tls-implementation-plan.md#deployment-security-checklist) - Pre-launch security validation

### [Deployment](./deployment/)
- Docker setup
- Kubernetes manifests
- Kubernetes manifests
- Cloud provider guides
- Production considerations
- Production considerations (see Security section above for TLS)

## πŸš€ Quick Start

Expand Down Expand Up @@ -51,7 +64,7 @@ Welcome to the GraphDone documentation! This directory contains comprehensive gu
- **Graph-native collaboration** - Work flows through natural dependencies
- **Spherical priority model** - Ideas migrate from periphery to center
- **Democratic prioritization** - Community validation guides resource allocation
- **Human-AI coordination** - Agents participate as first-class citizens
- **Human-AI coordination** - Smart chia pets that help with planning (see AI docs above)

## πŸ”— Quick Links

Expand Down
Loading
Loading