Skip to content

Commit f043b87

Browse files
authored
Merge pull request #17 from GraphDone/feature/simplify-node-editing
Simplify node editing with enhanced inline capabilities
2 parents 639c0da + b226107 commit f043b87

95 files changed

Lines changed: 18206 additions & 3585 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CLAUDE.md

Lines changed: 1176 additions & 213 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
![Version](https://img.shields.io/badge/version-0.2.2--alpha-orange.svg)
99
![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)
1010

11+
> 🚨 **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.
12+
1113
## What is GraphDone?
1214

1315
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.
@@ -257,6 +259,7 @@ Anyone can propose ideas and assign personal priority. The community validates t
257259
- 🎯 **[Project Philosophy](./docs/philosophy.md)** - Core beliefs and design principles
258260
- 🚀 **[Getting Started Guide](./docs/guides/getting-started.md)** - Step-by-step setup and first steps
259261
- 🏗️ **[Architecture Overview](./docs/guides/architecture-overview.md)** - System design and technical decisions
262+
- 🤖 **[AI Agents Integration](./docs/guides/ai-agents-integration.md)** - Multi-agent AI system with tamagotchi-style companions
260263
- 👥 **[User Flows](./docs/guides/user-flows.md)** - How teams actually use GraphDone
261264
- 🔌 **[API Documentation](./docs/api/graphql.md)** - GraphQL schema and integration guide
262265
- 🚀 **[Deployment Guide](./docs/deployment/README.md)** - Self-hosted and cloud deployment options

deployment/docker-compose.dev.yml

Lines changed: 134 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,74 +1,167 @@
1-
version: '3.8'
1+
name: graphdone-dev
2+
3+
networks:
4+
graphdone-internal:
5+
driver: bridge
26

37
services:
4-
postgres:
5-
image: postgres:15-alpine
8+
graphdone-neo4j:
9+
container_name: graphdone-neo4j
10+
image: neo4j:5.26.12
611
environment:
7-
POSTGRES_DB: graphdone_dev
8-
POSTGRES_USER: graphdone
9-
POSTGRES_PASSWORD: graphdone_password
10-
ports:
11-
- "5432:5432"
12+
NEO4J_AUTH: neo4j/graphdone_password
13+
NEO4J_PLUGINS: '["graph-data-science", "apoc"]'
14+
NEO4J_dbms_security_procedures_unrestricted: "gds.*,apoc.*"
15+
NEO4J_dbms_security_procedures_allowlist: "gds.*,apoc.*"
16+
# No external ports - internal network only
17+
expose:
18+
- "7474"
19+
- "7687"
1220
volumes:
13-
- postgres_dev_data:/var/lib/postgresql/data
14-
- ./scripts/init-db.sql:/docker-entrypoint-initdb.d/init-db.sql
21+
- neo4j_data:/data
22+
- logs:/logs
23+
networks:
24+
- graphdone-internal
25+
# Security configurations
26+
security_opt:
27+
- no-new-privileges:true
28+
cap_drop:
29+
- ALL
30+
cap_add:
31+
- CHOWN
32+
- DAC_OVERRIDE
33+
- FOWNER
34+
- SETGID
35+
- SETUID
36+
restart: unless-stopped
1537
healthcheck:
16-
test: ["CMD-SHELL", "pg_isready -U graphdone"]
38+
test: ["CMD", "cypher-shell", "-u", "neo4j", "-p", "graphdone_password", "RETURN 1"]
1739
interval: 10s
1840
timeout: 5s
1941
retries: 5
42+
start_period: 30s
2043

21-
redis:
22-
image: redis:7-alpine
23-
ports:
24-
- "6379:6379"
44+
graphdone-redis:
45+
container_name: graphdone-redis
46+
image: redis:8-alpine
47+
# No external ports - internal network only
48+
expose:
49+
- "6379"
2550
volumes:
26-
- redis_dev_data:/data
51+
- redis_data:/data
52+
networks:
53+
- graphdone-internal
54+
# Security configurations
55+
security_opt:
56+
- no-new-privileges:true
57+
cap_drop:
58+
- ALL
59+
cap_add:
60+
- CHOWN
61+
- SETGID
62+
- SETUID
63+
restart: unless-stopped
64+
user: "999:999" # Redis user
65+
read_only: true
66+
tmpfs:
67+
- /tmp:noexec,nosuid,size=100m
2768
healthcheck:
2869
test: ["CMD", "redis-cli", "ping"]
2970
interval: 10s
3071
timeout: 5s
3172
retries: 5
73+
start_period: 10s
3274

33-
server-dev:
75+
graphdone-api:
76+
container_name: graphdone-api
3477
build:
35-
context: .
78+
context: ..
3679
dockerfile: packages/server/Dockerfile.dev
3780
environment:
3881
- NODE_ENV=development
39-
- DATABASE_URL=postgresql://graphdone:graphdone_password@postgres:5432/graphdone_dev
40-
- PORT=4000
41-
- CORS_ORIGIN=http://localhost:3000
42-
ports:
43-
- "4000:4000"
82+
- NEO4J_URI=bolt://graphdone-neo4j:7687
83+
- NEO4J_USER=neo4j
84+
- NEO4J_PASSWORD=graphdone_password
85+
- PORT=4127
86+
- CORS_ORIGIN=http://localhost:3127
87+
# No external ports - internal network only
88+
expose:
89+
- "4127"
4490
depends_on:
45-
postgres:
91+
graphdone-neo4j:
4692
condition: service_healthy
47-
redis:
93+
graphdone-redis:
4894
condition: service_healthy
4995
volumes:
50-
- .:/app
51-
- /app/node_modules
52-
- /app/packages/server/node_modules
53-
command: npm run dev
96+
- logs:/app/logs
97+
- sqlite_auth_data:/app/data
98+
networks:
99+
- graphdone-internal
100+
# Security configurations
101+
security_opt:
102+
- no-new-privileges:true
103+
cap_drop:
104+
- ALL
105+
cap_add:
106+
- CHOWN
107+
- DAC_OVERRIDE
108+
- FOWNER
109+
- SETGID
110+
- SETUID
111+
restart: unless-stopped
112+
user: "1001:1001" # Non-root user
113+
tmpfs:
114+
- /tmp:noexec,nosuid,size=100m
115+
healthcheck:
116+
test: ["CMD", "curl", "-f", "http://localhost:4127/health"]
117+
interval: 30s
118+
timeout: 10s
119+
retries: 3
120+
start_period: 40s
54121

55-
web-dev:
122+
graphdone-web:
123+
container_name: graphdone-web
56124
build:
57-
context: .
125+
context: ..
58126
dockerfile: packages/web/Dockerfile.dev
59127
environment:
60-
- VITE_GRAPHQL_URL=http://localhost:4000/graphql
61-
- VITE_GRAPHQL_WS_URL=ws://localhost:4000/graphql
128+
- PORT=3127
129+
- VITE_PROXY_TARGET=http://graphdone-api:4127
130+
- VITE_GRAPHQL_URL=http://localhost:3127/graphql
131+
- VITE_GRAPHQL_WS_URL=ws://localhost:3127/graphql
132+
# Only expose web UI to host
62133
ports:
63-
- "3000:3000"
134+
- "3127:3127"
64135
depends_on:
65-
- server-dev
136+
- graphdone-api
66137
volumes:
67-
- .:/app
68-
- /app/node_modules
69-
- /app/packages/web/node_modules
70-
command: npm run dev
138+
- logs:/app/logs
139+
networks:
140+
- graphdone-internal
141+
# Security configurations
142+
security_opt:
143+
- no-new-privileges:true
144+
cap_drop:
145+
- ALL
146+
cap_add:
147+
- CHOWN
148+
- DAC_OVERRIDE
149+
- FOWNER
150+
- SETGID
151+
- SETUID
152+
restart: unless-stopped
153+
user: "1001:1001" # Non-root user
154+
tmpfs:
155+
- /tmp:noexec,nosuid,size=100m
156+
healthcheck:
157+
test: ["CMD", "curl", "-f", "http://localhost:3127"]
158+
interval: 30s
159+
timeout: 10s
160+
retries: 3
161+
start_period: 40s
71162

72163
volumes:
73-
postgres_dev_data:
74-
redis_dev_data:
164+
neo4j_data:
165+
redis_data:
166+
logs:
167+
sqlite_auth_data:

deployment/docker-compose.yml

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1+
name: graphdone
2+
13
services:
2-
neo4j:
3-
image: neo4j:5.15-community
4+
graphdone-neo4j:
5+
container_name: graphdone-neo4j-prod
6+
image: neo4j:5.26.12
47
environment:
58
NEO4J_AUTH: neo4j/graphdone_password
69
NEO4J_PLUGINS: '["graph-data-science", "apoc"]'
@@ -11,15 +14,16 @@ services:
1114
- "7687:7687" # Bolt
1215
volumes:
1316
- neo4j_data:/data
14-
- neo4j_logs:/logs
17+
- logs:/logs
1518
healthcheck:
1619
test: ["CMD", "cypher-shell", "-u", "neo4j", "-p", "graphdone_password", "RETURN 1"]
1720
interval: 10s
1821
timeout: 5s
1922
retries: 5
2023

21-
redis:
22-
image: redis:7-alpine
24+
graphdone-redis:
25+
container_name: graphdone-redis-prod
26+
image: redis:8-alpine
2327
ports:
2428
- "6379:6379"
2529
volumes:
@@ -30,33 +34,37 @@ services:
3034
timeout: 5s
3135
retries: 5
3236

33-
server:
37+
graphdone-api:
38+
container_name: graphdone-api-prod
3439
build:
3540
context: ..
3641
dockerfile: packages/server/Dockerfile
3742
environment:
3843
- NODE_ENV=production
39-
- NEO4J_URI=bolt://neo4j:7687
44+
- NEO4J_URI=bolt://graphdone-neo4j:7687
4045
- NEO4J_USER=neo4j
4146
- NEO4J_PASSWORD=graphdone_password
4247
- PORT=4127
4348
- CORS_ORIGIN=http://localhost:3127
4449
ports:
4550
- "4127:4127"
4651
depends_on:
47-
neo4j:
52+
graphdone-neo4j:
4853
condition: service_healthy
49-
redis:
54+
graphdone-redis:
5055
condition: service_healthy
5156
volumes:
5257
- ../packages/server/.env:/app/.env
58+
- logs:/app/logs
59+
- sqlite_auth_data:/app/data
5360
healthcheck:
5461
test: ["CMD", "curl", "-f", "http://localhost:4127/health"]
5562
interval: 30s
5663
timeout: 10s
5764
retries: 3
5865

59-
web:
66+
graphdone-web:
67+
container_name: graphdone-web-prod
6068
build:
6169
context: ..
6270
dockerfile: packages/web/Dockerfile
@@ -66,11 +74,13 @@ services:
6674
ports:
6775
- "3127:3127"
6876
depends_on:
69-
- server
77+
- graphdone-api
7078
volumes:
7179
- ../packages/web/.env:/app/.env
80+
- logs:/app/logs
7281

7382
volumes:
7483
neo4j_data:
75-
neo4j_logs:
76-
redis_data:
84+
redis_data:
85+
logs:
86+
sqlite_auth_data:

docs/README.md

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
# GraphDone Documentation
22

3-
**AI-Generated Content Warning: This documentation contains AI-generated content. Verify information before depending on it for decision making.**
4-
53
Welcome to the GraphDone documentation! This directory contains comprehensive guides, API references, and deployment information for working with GraphDone.
64

75
## 📚 Documentation Structure
@@ -13,16 +11,31 @@ Welcome to the GraphDone documentation! This directory contains comprehensive gu
1311
- Authentication and authorization
1412

1513
### [Developer Guides](./guides/)
16-
- Getting started
17-
- Core concepts
18-
- Architecture overview
19-
- Contributing guidelines
14+
- [Getting Started](./guides/getting-started.md) - Setup and first steps
15+
- [Architecture Overview](./guides/architecture-overview.md) - System design and technical decisions
16+
- [SQLite Deployment Modes](./guides/sqlite-deployment-modes.md) - Local dev vs Docker authentication storage
17+
- [User Flows](./guides/user-flows.md) - How teams actually use GraphDone
18+
19+
### 🤖 AI Agents Documentation
20+
> **Start here**: [Simple AI Agent Reality Check](./simple-agent-reality.md) - **What we're actually building**
21+
22+
**Implementation Guides**:
23+
- [Simple AI Agent Reality Check](./simple-agent-reality.md) - 🎯 **THE PLAN**: Smart chia pet with Ollama
24+
- [AI Agents Technical Spec](./ai-agents-tech-spec.md) - 📚 Complete technical implementation (advanced)
25+
- [Agent Planning Scenarios](./agent-planning-scenarios.md) - 🎪 Interactive planning examples (future)
26+
27+
### 🔒 Security & Production
28+
> **CRITICAL FOR RELEASE**: [TLS Implementation Plan](./security/tls-implementation-plan.md) - **Required before production**
29+
30+
**Security Documentation**:
31+
- [TLS Implementation Plan](./security/tls-implementation-plan.md) - 🚨 **MUST READ**: HTTPS, SSL certificates, secrets management
32+
- [Production Security Checklist](./security/tls-implementation-plan.md#deployment-security-checklist) - Pre-launch security validation
2033

2134
### [Deployment](./deployment/)
2235
- Docker setup
23-
- Kubernetes manifests
36+
- Kubernetes manifests
2437
- Cloud provider guides
25-
- Production considerations
38+
- Production considerations (see Security section above for TLS)
2639

2740
## 🚀 Quick Start
2841

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

5669
## 🔗 Quick Links
5770

0 commit comments

Comments
 (0)