Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
34 changes: 34 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
name: Bug Report
about: Report a bug to help us improve
title: "[Bug] "
labels: bug
assignees: ''
---

**Describe the bug**
A clear description of what the bug is.

**To reproduce**
Steps to reproduce:
1. ...
2. ...
3. ...

**Expected behavior**
What you expected to happen.

**Actual behavior**
What actually happened.

**Environment**
- OS: [e.g., macOS 15, Ubuntu 24.04]
- Node.js: [e.g., 20.11.0]
- Docker: [e.g., 27.0.0]
- Browser (if webapp): [e.g., Chrome 130]

**Logs**
If applicable, paste relevant logs.

**Additional context**
Any other context about the problem.
19 changes: 19 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
name: Feature Request
about: Suggest a new feature or improvement
title: "[Feature] "
labels: enhancement
assignees: ''
---

**Problem**
What problem does this feature solve?

**Proposed solution**
Describe what you'd like to happen.

**Alternatives considered**
Any alternative solutions you've considered.

**Additional context**
Any other context, mockups, or examples.
20 changes: 20 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
## Summary

<!-- Brief description of what this PR does -->

## Changes

<!-- List of changes -->
-

## Checklist

- [ ] `npm run typecheck` passes
- [ ] `npm run lint` passes
- [ ] Tests added/updated for new functionality
- [ ] Documentation updated (if applicable)
- [ ] No secrets or credentials in committed files

## Related Issues

<!-- Link to related issues: Fixes #123, Relates to #456 -->
41 changes: 41 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: CI

on:
push:
branches: [main]
pull_request:
branches: [main]

jobs:
typecheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- run: npm ci
- run: npm run typecheck

lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- run: npm ci
- run: npm run lint

test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- run: npm ci
- run: npm run test
18 changes: 17 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,20 @@ coverage
.next
dist
.claude-flow
ngrok.config.yml
ngrok.config.yml

# Benchmark run data
tests/benchmarks/runs/

# Environment files
.env.*.local
.env.production
.env.benchmark

# Keys and certificates
*.pem
*.key

# Swarm data
.swarm/
tests/benchmarks/src/.swarm/
28 changes: 28 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.1.0] - 2026-03-30

### Added

- MCP server with full Model Context Protocol support (HTTP/SSE and stdio)
- REST API for facts, relations, knowledge cards, workspaces, and users
- Web dashboard (Next.js) for browsing and managing knowledge
- ArangoDB-backed knowledge graph with vector embeddings
- Hybrid search: vector similarity + graph traversal
- Auto-consolidation: background workers merge related facts into knowledge cards
- BGE cross-encoder reranker for improved search relevance
- File upload and fact extraction (PDF, DOCX, Excel, CSV)
- Google and GitHub OAuth authentication
- API key authentication
- Multi-workspace support with isolation
- Workspace-scoped security for all API endpoints
- Audit trails for all fact operations
- Embedding queue for real-time async processing
- Docker Compose configs for development and production
- Comprehensive benchmark suite (HotpotQA, RelationRecall, LongMemEval)
- Environment variable waterfall configuration (root -> service overrides)
60 changes: 60 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Contributor Covenant Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in our
community a welcoming and respectful experience for everyone.

We pledge to act and interact in ways that contribute to an open, inclusive,
and healthy community.

## Our Standards

Examples of behavior that contributes to a positive environment:

- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Giving and gracefully accepting constructive feedback
- Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
- Focusing on what is best for the overall community

Examples of unacceptable behavior:

- Trolling, insulting or derogatory comments, and personal attacks
- Public or private harassment of any kind
- Publishing others' private information without explicit permission
- Other conduct which could reasonably be considered inappropriate in a
professional setting

## Enforcement Responsibilities

Project maintainers are responsible for clarifying and enforcing our standards
of acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate or harmful.

Project maintainers have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.

## Scope

This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.

## Enforcement

Instances of unacceptable behavior may be reported to the project team at
**opensource@camplight.net**. All complaints will be reviewed and investigated
promptly and fairly. The project team is obligated to maintain confidentiality
with regard to the reporter of an incident.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.1, available at
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].

[homepage]: https://www.contributor-covenant.org
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
121 changes: 121 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
# Contributing to KnowledgePlane

Thank you for your interest in contributing to KnowledgePlane! We welcome contributions from everyone, whether it is a bug report, feature request, documentation improvement, or code change.

## How to Contribute

### Development Setup

1. Fork and clone the repository:

```bash
git clone https://github.com/camplight/knowledgeplane.git
cd knowledgeplane
```

2. Install dependencies and bootstrap the monorepo:

```bash
npm run bootstrap
```

3. Start the development environment:

```bash
npm run dev
```

For detailed setup instructions (ArangoDB, environment variables, Docker, etc.), see [DEVELOPMENT.md](DEVELOPMENT.md).

### Branch Naming

Use the following prefixes for your branches:

- `feature/` -- New features (e.g., `feature/workspace-sharing`)
- `fix/` -- Bug fixes (e.g., `fix/search-timeout`)
- `docs/` -- Documentation changes (e.g., `docs/api-reference`)

### Commit Messages

We follow [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/). Each commit message should be structured as:

```
<type>: <description>
```

Supported types:

- `feat:` -- A new feature
- `fix:` -- A bug fix
- `docs:` -- Documentation changes
- `chore:` -- Maintenance tasks (CI, tooling, dependencies)
- `refactor:` -- Code changes that neither fix a bug nor add a feature
- `test:` -- Adding or updating tests
- `perf:` -- Performance improvements

Examples:

```
feat: add vector search to knowledge card queries
fix: handle empty embedding field in consolidation worker
docs: update REST API endpoint documentation
test: add integration tests for file upload extraction
```

### Pull Request Guidelines

1. **Describe your changes** -- Provide a clear summary of what the PR does and why.
2. **Reference issues** -- Link related GitHub issues (e.g., "Closes #42").
3. **Add tests** -- New features and bug fixes should include tests.
4. **Pass checks** -- Before submitting, run:

```bash
npm run typecheck
npm run lint
npm run test
```

5. **Keep PRs focused** -- One logical change per PR. Split large changes into smaller, reviewable pieces.
6. **Update documentation** -- If your change affects public APIs or user-facing behavior, update the relevant docs.

### Code Style

- **TypeScript** -- All source code is written in TypeScript. Follow the existing patterns in the codebase.
- **No new dependencies without discussion** -- If your change requires a new dependency, open an issue first to discuss the rationale and alternatives.
- **Existing patterns** -- Match the conventions, naming, and structure already present in the code.

### Testing

Run the full test suite:

```bash
npm run test
```

Add tests for any new features or bug fixes. We use the existing test infrastructure in the `tests/` directory.

### Reporting Bugs

Use the [GitHub issue tracker](https://github.com/camplight/knowledgeplane/issues) to report bugs. Please include:

- A clear and descriptive title
- Steps to reproduce the issue
- Expected vs. actual behavior
- Environment details (OS, Node.js version, ArangoDB version)
- Any relevant logs or error messages

### Feature Requests

Use the [GitHub issue tracker](https://github.com/camplight/knowledgeplane/issues) to request features. Please include:

- A clear description of the feature and the problem it solves
- Any alternatives you have considered
- Context on how you would use this feature

### Code of Conduct

This project adheres to a [Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this standard. Please report unacceptable behavior to opensource@camplight.net.

---

Thank you for helping make KnowledgePlane better!
Loading
Loading