Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
c6f2cad
feat(graph-viewer): add server URL config to TokenPrompt
jack-arturo Dec 11, 2025
90c4df4
feat(api): add CORS support for graph viewer
jack-arturo Dec 11, 2025
80ad799
feat: add embedded Graph Viewer with multi-stage Docker build
jack-arturo Dec 11, 2025
3b0f1f7
fix: exempt /viewer/ routes from API authentication
jack-arturo Dec 11, 2025
f5f404c
fix: set Vite base path for embedded viewer assets
jack-arturo Dec 11, 2025
daf9a2b
feat: add hand gesture control for memory graph navigation
jack-arturo Dec 11, 2025
66d90d8
feat(graph-viewer): add gesture debug overlay and pinch ray laser
jack-arturo Dec 11, 2025
b549ca9
feat(graph-viewer): add 2D hand overlay for life-size hand visualization
jack-arturo Dec 11, 2025
bfa8d9a
fix(graph-viewer): un-mirror hand and invert depth direction
jack-arturo Dec 11, 2025
53a7b14
feat(graph-viewer): add hand smoothing, ghost effect, grip indicator,…
jack-arturo Dec 11, 2025
9cc7a2f
feat(graph-viewer): add two-hand pinch manipulation for graph control
jack-arturo Dec 11, 2025
9fbff2d
perf(graph-viewer): major performance optimizations for 500+ nodes
jack-arturo Dec 11, 2025
268b2b2
fix(graph-viewer): start graph still, add version indicator
jack-arturo Dec 11, 2025
8ecd2bf
feat(graph-viewer): add smooth gestures, center-biased lasers, and gh…
jack-arturo Dec 11, 2025
d7668a4
feat(graph-viewer): fix hand mirroring and move cloud instead of camera
jack-arturo Dec 11, 2025
24708e0
feat(graph-viewer): single-hand pull/push and two-hand compound rotation
jack-arturo Dec 11, 2025
a575555
feat(graph-viewer): puffy white Mario-style gloves with inverted depth
jack-arturo Dec 11, 2025
5db7829
feat(graph-viewer): Master Hand style volumetric hands
jack-arturo Dec 11, 2025
9b5aea5
feat: Add hand interaction and laser pointer features
jack-arturo Dec 11, 2025
204342c
feat: Add hand tracking server and improve gesture logic
jack-arturo Dec 11, 2025
e69e0af
feat: iPhone hand tracking with adaptive zoom + LiDAR depth
jack-arturo Dec 11, 2025
803db30
feat: Add hand lock and grab gesture controls
jack-arturo Dec 11, 2025
aac5c81
feat(graph-viewer): enhance API proxy configuration and gesture controls
jack-arturo Dec 13, 2025
2095869
feat(graph-viewer): improve hand tracking bridge status
jack-arturo Dec 18, 2025
366005f
docs: add visualizer enhancement plan for Obsidian-style UI
claude Dec 23, 2025
f3487fb
Merge feat/visualizer into enhancement branch
claude Dec 23, 2025
c9aa6b5
feat(graph-viewer): add Obsidian-style settings panel
claude Dec 23, 2025
2cb5b32
feat(graph-viewer): add relationship-styled edges and display controls
claude Dec 23, 2025
1e2c541
feat(graph-viewer): add clustering with visual boundaries
claude Dec 23, 2025
9214870
feat(graph-viewer): add selection focus mode with highlights
claude Dec 23, 2025
bfaa092
feat(graph-viewer): add keyboard navigation
claude Dec 23, 2025
137e61c
fix: Add ws dependency and update Vite scripts
jack-arturo Dec 23, 2025
df4099f
fix: Add tracking source toggle and improve hand gesture cleanup
jack-arturo Dec 24, 2025
faec9cf
fix: Update iPhone hand tracking landmark mapping and debug logs
jack-arturo Dec 24, 2025
445b4bb
fix: Improve hand gesture controls and add reset view
jack-arturo Dec 24, 2025
5400d2f
feat: Add advanced UI features: bookmarks, lasso, pathfinding, tag cloud
jack-arturo Dec 24, 2025
d8db291
feat: Refactor hand cursor and force layout logic
jack-arturo Dec 24, 2025
0c77a6b
fix: Remove advanced hand interaction and laser features
jack-arturo Dec 24, 2025
b3b62e5
feat: Improve hand tracking and gesture control UX
jack-arturo Dec 25, 2025
604f629
feat: Add hand recording and playback for automated testing
jack-arturo Dec 25, 2025
14a1ae9
feat: Add bimanual hand gesture controls and improve gesture UX
jack-arturo Dec 27, 2025
3dffb49
feat: clustering and layout for graph visualization
jack-arturo Dec 28, 2025
62bf2ab
feat: Add UMAP-based 3D projection for semantic graph layout
jack-arturo Dec 28, 2025
f6d53d4
feat: Add UMAP embedding projection for semantic graph layout
jack-arturo Dec 28, 2025
92974b6
feat: Increase max nodes limit to 5000
jack-arturo Dec 28, 2025
b9e47ae
feat: Add VR support and improve graph layout seeding
jack-arturo Jan 5, 2026
7d466a5
feat: Add VITE_API_TARGET env support for API base URL
jack-arturo Jan 6, 2026
6233ebe
Merge branch 'main' into feature/graph-visualization-clustering-impro…
jack-arturo Jan 10, 2026
98ce6f4
feat: Remove focus/spotlight mode UI and improve hand controls
jack-arturo Jan 19, 2026
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
12 changes: 12 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[flake8]
max-line-length = 100
select = E9,F63,F7,F82
show_source = True
extend-exclude =
.venv,
venv,
node_modules,
packages/graph-viewer/node_modules,
packages/graph-viewer/dist,
packages/graph-viewer/.vite,
tests/benchmarks
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,6 @@ tests/benchmarks/locomo/
node_modules/
# Experiment results (promote notable runs to tests/benchmarks/results/)
/tests/benchmarks/experiments/results_*/
packages/graph-viewer/dist/
packages/graph-viewer/node_modules/
automem/static/viewer/
Comment on lines +30 to +32
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Add .vite/ pattern to prevent committing Vite build cache.

The three new patterns correctly exclude Graph Viewer build artifacts and dependencies. However, Vite's build cache directory (.vite/) should also be ignored, as evidenced by the build artifacts in packages/graph-viewer/.vite/deps/ that were committed in this PR.

🔎 Recommended addition
 packages/graph-viewer/dist/
 packages/graph-viewer/node_modules/
+packages/graph-viewer/.vite/
 automem/static/viewer/

Or more broadly to catch all Vite caches:

 packages/graph-viewer/dist/
 packages/graph-viewer/node_modules/
+**/.vite/
 automem/static/viewer/
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
packages/graph-viewer/dist/
packages/graph-viewer/node_modules/
automem/static/viewer/
packages/graph-viewer/dist/
packages/graph-viewer/node_modules/
packages/graph-viewer/.vite/
automem/static/viewer/
🤖 Prompt for AI Agents
In @.gitignore around lines 27-29, The .gitignore update excludes Graph Viewer
build artifacts (packages/graph-viewer/dist/,
packages/graph-viewer/node_modules/, automem/static/viewer/) but omits Vite's
cache directory; add a Vite cache ignore pattern such as .vite/ (or the broader
**/.vite/) to the .gitignore so packages/graph-viewer/.vite/deps/ and any other
Vite cache folders are not committed.

13 changes: 13 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,19 @@
- Never commit secrets. Configure via env vars: `AUTOMEM_API_TOKEN`, `ADMIN_API_TOKEN`, `OPENAI_API_KEY`, `FALKORDB_PASSWORD`, `QDRANT_API_KEY`.
- Local dev uses Docker defaults; see `docs/ENVIRONMENT_VARIABLES.md` and `docker-compose.yml` for ports and credentials.

## Task Completion Checklist
**CRITICAL**: Before declaring any coding task complete, ALWAYS:
1. **Run the build**: `make build` (Python) or `npm run build` (graph-viewer)
2. **Run lints**: `make lint` (Python) or `npm run tsc` (TypeScript)
3. **Run tests** (if applicable): `make test` or `npm test`
4. **If any fail**: Iterate and fix until all pass
5. **Never commit or deploy** code that doesn't build

For graph-viewer specifically:
```bash
cd packages/graph-viewer && npm run build
```

## Agent Memory Protocol

Follow rules in `.cursor/rules/automem.mdc` for memory operations.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@ All notable changes to AutoMem will be documented in this file.
- Solution: Use Railway TCP Proxy for external access to FalkorDB
- Added pre-flight connectivity check with clear error messages and troubleshooting guidance
- Updated documentation with TCP Proxy setup instructions
- **Graph Viewer**:
- Disabled focus/spotlight mode UI (feature currently off)
- Only show “Enter XR” when WebXR is supported (secure context + `immersive-vr`)
- Improved bimanual pinch activation and smoothing for pan/zoom/rotate
- Fixed reset view callback wiring so Reset View works again

### Documentation

Expand Down
25 changes: 22 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,22 +1,41 @@
# Dockerfile - Flask API runtime image
# Dockerfile - Flask API runtime image with optional Graph Viewer
# Multi-stage build: Node.js for frontend, Python for backend

# Stage 1: Build the Graph Viewer frontend
FROM node:20-slim AS frontend-builder

WORKDIR /build

# Copy package files and install dependencies
COPY packages/graph-viewer/package*.json ./
RUN npm ci --silent

# Copy source and build
COPY packages/graph-viewer/ ./
RUN npm run build

# Stage 2: Python runtime
FROM python:3.11-slim

ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1

WORKDIR /app

# Install system deps (none currently, but keep hook for Falkor client libs if needed)
# Install system deps
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
&& rm -rf /var/lib/apt/lists/*

COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

# Copy the full application source into the image
# Copy the full application source
COPY . .

# Copy the built frontend from stage 1
COPY --from=frontend-builder /build/dist/ ./automem/static/viewer/

EXPOSE 8001

CMD ["python", "app.py"]
Loading