Skip to content
Open
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
41 changes: 41 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<!--
When creating a PR, be sure to prepend the PR title with the Conventional Commit type (`feat`, `fix`, or `chore`).

Examples:

`feat: add growl notification to spaces:wait`

`fix: handle special characters in app names`

`chore: refactor tests`

Learn more about [Conventional Commits](https://www.conventionalcommits.org/).
-->

## Summary

<!-- Brief description of the changes in this PR. -->

## Type of Change

- [ ] **fix**: Bug fix or issue (patch semvar update)
- [ ] **feat**: Introduces a new feature to the codebase (minor semvar update)
- [ ] **perf**: Performance improvement
- [ ] **docs**: Documentation only changes
- [ ] **tests**: Adding missing tests or correcting existing tests
- [ ] **chore**: Code cleanup tasks, dependency updates, or other changes

Note: Add a `!` after your change type to denote a breaking change.

## Additional Context

<!--
* For fixes, provide reproduction steps and expected vs actual behavior
* For features, describe the objective and rationale for this change.
* If this is a breaking change, describe what functionality is affected and a migration path for existing users
* Any additional information, links, screenshots, or attachments that help describe the issue
-->

## Related Issue

Closes #[Github issue number]
19 changes: 17 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,24 @@ RUN groupadd -r app && useradd -r -d /app -g app app
# Copy project files for dependency installation (better caching)
COPY pyproject.toml uv.lock README.md ./

# Install dependencies first (better layer caching)
# Install custom CA certificate into system trust store if provided
# This persists the certificate in the image for both build and runtime
RUN --mount=type=secret,id=ssl_cert,target=/tmp/ca-cert.pem,required=false \
sh -c ' \
if [ -f /tmp/ca-cert.pem ] && [ -s /tmp/ca-cert.pem ]; then \
echo "Installing custom CA certificate into system trust store"; \
cp /tmp/ca-cert.pem /usr/local/share/ca-certificates/custom-ca.crt; \
update-ca-certificates; \
echo "Certificate installed and will persist in container"; \
else \
echo "No custom CA certificate provided - using system defaults"; \
fi \
'

# Install dependencies including dev dependencies (after certificate is installed, if provided)
# We install dev dependencies here so they're available at runtime without re-downloading
RUN --mount=type=cache,target=/root/.cache/uv \
uv sync --frozen --no-dev
uv sync --frozen

# Copy application code
COPY src/ ./src/
Expand Down
6 changes: 6 additions & 0 deletions Justfile
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,12 @@ clean:
@rebuild:
{{DC}} down && {{DC}} build --no-cache && {{DC}} up -d && {{DC}} logs -f

@rebuild-local:
{{DC}} -f docker-compose.local.yml down && \
{{DC}} -f docker-compose.local.yml build --no-cache && \
{{DC}} -f docker-compose.local.yml up -d && \
{{DC}} -f docker-compose.local.yml logs -f

@restart:
{{DC}} down && {{DC}} up -d && {{DC}} logs -f

Expand Down
23 changes: 23 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -239,6 +239,27 @@ To use OpenAI instead of Ollama in Docker:
uv run src/graphiti_mcp_server.py --transport sse
```

## Testing Your Configuration

Before starting the MCP server, validate that your models work with their configured parameters:

```bash
# Test model compatibility (recommended before first run)
scripts/test_model_compatibility.sh

# For detailed debugging of connections and SSL
scripts/debug_bedrock_connection.sh
```

The compatibility test will catch common issues like:
- Temperature constraints (e.g., some models require temperature >= 1.0)
- Model availability on configured endpoints
- Embedding dimension mismatches
- Authentication failures
- SSL certificate issues

📖 **See [TESTING_QUICKSTART.md](TESTING_QUICKSTART.md) for quick reference or [docs/MODEL_COMPATIBILITY_TESTING.md](docs/MODEL_COMPATIBILITY_TESTING.md) for comprehensive testing guide.**

## Configuration

The server supports multiple configuration methods with the following precedence (highest to lowest):
Expand Down Expand Up @@ -844,6 +865,8 @@ Or add it to your `.env` file:
GRAPHITI_TELEMETRY_ENABLED=false
```

> **Note**: If you see SSL certificate errors related to PostHog (us.i.posthog.com) in your logs, ensure you're using `GRAPHITI_TELEMETRY_ENABLED=false` (not the deprecated `POSTHOG_DISABLED=1`).

For complete details about what's collected and why, see the [Telemetry section in the main Graphiti README](../README.md#telemetry).

## 📦 Distribution and Publishing
Expand Down
Loading