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
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# @copilotkit/pathfinder

## 1.15.0

### Minor Changes

- **OAuth phishing-resistance hardening**: GET `/authorize` now renders a server-rendered consent screen (HMAC-bound nonce, `CSP frame-ancestors 'none'`, `X-Frame-Options DENY`, `Referrer-Policy no-referrer`) instead of auto-approving. POST `/authorize/consent` re-validates the bound payload field-by-field and builds the final redirect URL from the nonce-bound `redirect_uri`, not the form body — the phishing-resistance invariant.
- **`redirect_uri` policy validator**: `/register` and consent re-validate every URI against a hardened policy — `https`-only except loopback (`localhost`, `127.0.0.0/8`, `[::1]`); rejects 0.0.0.0/8, RFC1918, link-local (`fe80::/10`), ULA, IPv4-mapped private; max 2048 chars per URI, max 10 URIs per client.
- **Client cap with TTL eviction**: 10,000 total / 100 per-IP cap on registered clients; lazy sweep on every register (>30d unused or >7d never-used-after-registration). `Retry-After` returned with 429 (per-IP) or 503 (total).
- **OAuth trusted-IP plumbing**: `oauthClientIp(req)` resolves the client IP via a setter-injection seam wired at server bootstrap, gating `X-Forwarded-For` and `X-Forwarded-Proto` on the same trust-proxy boundary as the rest of the server. `originOf()` no longer accepts attacker-controlled `X-Forwarded-Proto` when the proxy isn't trusted.
- **`PATHFINDER_CONSENT_HMAC_KEY` config**: New env var carrying the HMAC key for consent-nonce signing. Comma-separated for rotation (first key signs, all keys verify). ≥32 hex chars per entry. Fail-loud in production when unset; dev fallback generates an ephemeral key per process and warns.

## 1.14.0

### Minor Changes
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@copilotkit/pathfinder",
"version": "1.14.0",
"version": "1.15.0",
"description": "The knowledge server for AI agents — index docs, code, Notion, Slack, and Discord into searchable, agent-accessible knowledge via MCP. Supports OpenAI, Ollama, and local transformers.js embeddings.",
"type": "module",
"repository": {
Expand Down
2 changes: 1 addition & 1 deletion src/cli.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ const program = new Command();
program
.name("pathfinder")
.description("The knowledge server for AI agents")
.version("1.14.0");
.version("1.15.0");

program
.command("init")
Expand Down