You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Add Synapse design doc and update CLAUDE.md for feature handoff
- docs/synapse-design.md: Full architecture spec for Universal Context Broker
- CLAUDE.md: Synapse section with new key files, resource classes, and conventions
- Branch: feature/synapse
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Add Synapse phases 1-3: schema, resource classes, and tests
- Add SynapseEntry table to schema.graphql with HNSW vector index
- Add SynapseEntry, SynapseSearch, SynapseIngest, SynapseEmit to resources.js
- Add classifySynapseEntry, synapseparsers, synapseEmitters helpers
- Update existing tests to include SynapseEntry in harperdb mock
- Add 4 new Synapse test files (77 tests total, all pass)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Add Synapse CLI (bin/synapse.js) with sync, emit, search, watch, status
- Zero-dependency Node.js CLI using process.argv and fetch
- sync: discovers CLAUDE.md, .cursor/rules/*.mdc, .windsurf/ and POSTs to SynapseIngest
- emit: queries SynapseEmit and prints or writes files (--write flag)
- search: semantic search via SynapseSearch with --limit and --type filters
- watch: fs.watch with 2s debounce for auto-sync on file changes
- status: shows entry counts by type and source from a search sample
- Add "bin" field to package.json
- Add SYNAPSE_ENDPOINT, SYNAPSE_PROJECT, SYNAPSE_AUTH to .env.example
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Add Synapse documentation (Phase 5)
- README.md: add Synapse section with architecture diagram, context types,
CLI examples, API endpoints table, project structure, and env vars
- docs/architecture.md: add Synapse data flow diagram and SynapseEntry schema table
- CLAUDE.md: update key files list, test count (35 → 77), remove branch qualifier
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Add linting, formatting, and release tooling
- dprint: code formatter (tabs, single quotes, useBraces:always) for JS, JSON, Markdown, GraphQL
- oxlint: fast linter with test-file overrides for no-new-array and require-yield
- semantic-release: automated versioning and GitHub releases from conventional commits
- commitlint: enforce conventional commit format
- GitHub Actions: ci.yml (lint+test on all branches) and release.yml (release on main)
- New scripts: format:check, format:fix, format:staged, lint:check, lint:fix, test:watch, test:coverage, commitlint
- Fix lint warnings in resources.js: prefix unused embedding and projectId params with _
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: address Synapse review issues
- Add VALID_EMIT_TARGETS set; reject slack/manual as emit targets, accept markdown
- Push single-type filter to server-side search conditions in SynapseEmit
- Deduplicate ingested entries using deterministic content hash as record ID
- Fix parseClaudeCode/parseWindsurf to preserve preamble before first ## heading
- Update engines.node to >=22.0.0 (required for --experimental-test-module-mocks)
- Combine table destructures into single line
- Add beforeEach mock resets to synapse-search and synapse-emit test files
- Broaden CLI status command query; document as approximate
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
-`.env.example` - All required environment variables documented
21
+
-`bin/synapse.js` - Synapse CLI: sync, emit, search, watch, status commands
21
22
22
23
## Development
23
24
24
25
```bash
25
26
npm run dev # Start locally on port 9926
26
-
npm test# Run all 35 tests
27
+
npm test# Run all 77 tests
27
28
npm run deploy # Deploy to Harper Fabric
28
29
```
29
30
30
31
## Architecture
31
32
32
33
Slack webhook -> classify (Claude) + embed (Voyage AI) -> store in Memory table -> query via MCP from Claude Desktop/Cursor.
33
34
35
+
## Synapse
36
+
37
+
Universal Context Broker — ingests development context from any AI tool (Claude Code, Cursor, Windsurf, Copilot) and emits it in any other tool's native format. Full design spec: `docs/synapse-design.md`.
38
+
39
+
### New Key Files
40
+
41
+
-`bin/synapse.js` - CLI: sync, emit, search, watch, status commands
42
+
-`test/synapse-*.test.js` - Tests for classify, search, ingest, emit
43
+
44
+
### New Resource Classes (in resources.js)
45
+
46
+
-`SynapseEntry` - Table extension (strips embeddings, same pattern as MemoryTable)
47
+
-`SynapseSearch` - Semantic search with mandatory `projectId` scoping
48
+
-`SynapseIngest` - Parses tool-native formats into SynapseEntry records
49
+
-`SynapseEmit` - Formats SynapseEntry records into tool-native output
50
+
51
+
### Conventions
52
+
53
+
- SynapseEntry table follows same patterns as Memory (HNSW vector index, classification via Claude Haiku, embeddings via Voyage AI)
- Default status filter is `active` (excludes superseded/archived)
57
+
34
58
## Agent Skills
35
59
36
60
Skills from `harperfast/skills` are tracked in `skills-lock.json` and installed into `.agents/skills/` (git-ignored). Refer to the relevant skill rules when making changes:
0 commit comments