Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
178 commits
Select commit Hold shift + click to select a range
41be46e
[integrations] Add Telegram capture bot
Reb-Elle-Art Apr 17, 2026
ba6b279
[recipes] Weekly digest — importance-ranked consumption format
alanshurafa Apr 18, 2026
15d8716
[recipes] Lint sweep — bounded brain quality audit
alanshurafa Apr 18, 2026
f6de122
[recipes] Fix REVIEW-CODEX-P1-1: --max-llm-calls=0 now actually disab…
alanshurafa Apr 18, 2026
4262879
[recipes] Fix REVIEW-CODEX-P1-2: document entity-extraction (not ob-g…
alanshurafa Apr 18, 2026
9575378
[recipes] Fix REVIEW-CODEX-P1-2: sensitivity fallback now fails closed
alanshurafa Apr 18, 2026
849ff76
[recipes] Fix WR-02: SUPABASE_* canonical env vars with OPEN_BRAIN_* …
alanshurafa Apr 18, 2026
c6cabba
[recipes] Fix REVIEW-CODEX-P1-1: read importance from metadata for st…
alanshurafa Apr 18, 2026
9938c2a
[recipes] Fix REVIEW-CODEX-P2: --dry-run skips Telegram creds and imp…
alanshurafa Apr 18, 2026
defd8b2
[recipes] Fix WR-01: rename lint-sweep.mjs to .js with type:module fo…
alanshurafa Apr 18, 2026
8e812b5
[recipes] Fix REVIEW-CODEX-P3: distinguish source_thought_count_used …
alanshurafa Apr 18, 2026
8acf9d3
[recipes] Fix WR-03: document Tier 1/2 sampling caps in report
alanshurafa Apr 18, 2026
126037e
[recipes] Fix REVIEW-CODEX-P3: remove dead rpc() and dangling counters
alanshurafa Apr 18, 2026
2375340
[recipes] Fix WR-01: SUPABASE_* canonical env vars
alanshurafa Apr 18, 2026
5add28d
[recipes] Fix WR-02: replace dead primitive link with honest guidance
alanshurafa Apr 18, 2026
5a060f2
[recipes] Fix IN-04/IN-05: sanitize preview text, validate report path
alanshurafa Apr 18, 2026
2787ae0
[recipes] Defer WR-04, IN-03: add TODO comments for documented trade-…
alanshurafa Apr 18, 2026
c49a5ee
[recipes] Fix WR-03/WR-05: service-key warning, .env.example, date-ra…
alanshurafa Apr 18, 2026
b097137
[recipes] Fix IN-03: chunker paragraph boundaries with word-boundary …
alanshurafa Apr 18, 2026
0b26574
[recipes] Fix REVIEW-CODEX-2-P1: report path accepts absolute and hom…
alanshurafa Apr 18, 2026
83f63df
[recipes] Fix REVIEW-CODEX-2-P1: Tier 3 honors --sample-size instead …
alanshurafa Apr 18, 2026
fcb0ee3
[recipes] Fix REVIEW-CODEX-2-P2: correct README partial-report claim
alanshurafa Apr 18, 2026
4cfb399
[recipes] Fix REVIEW-CODEX-2-P2: honor native importance column when …
alanshurafa Apr 18, 2026
40abca0
[recipes] Fix REVIEW-CODEX-2-P2: include NULL sensitivity_tier rows i…
alanshurafa Apr 18, 2026
09dffde
[recipes] Fix REVIEW-CODEX-3-P3: refresh README sample output to matc…
alanshurafa Apr 18, 2026
0ea1296
[recipes] Fix CI Rule 13: convert broken relative links to external P…
alanshurafa Apr 18, 2026
54d2956
[schemas] Text search trigram index for ILIKE fallback
alanshurafa Apr 18, 2026
f4cdb1a
[recipes] Rewrite ob-graph recursive CTEs as iterative BFS (find_shor…
alanshurafa Apr 18, 2026
b6d6c2f
[recipes] Add smoke test for ob-graph RPCs after BFS rewrite
alanshurafa Apr 18, 2026
2a8c634
[schemas] Fix CI Rule 13: convert broken enhanced-thoughts link to ex…
alanshurafa Apr 18, 2026
4618511
[recipes] Fix REVIEW-CODEX-P1: revert traverse_graph to original recu…
alanshurafa Apr 18, 2026
cd74dd3
[recipes] Fix REVIEW-CODEX-P2: revoke reconstruct_bfs_path from anon/…
alanshurafa Apr 18, 2026
4affcef
[recipes] Fix REVIEW-CODEX-P3: docs and env-example naming consistency
alanshurafa Apr 18, 2026
9353eef
[recipes] Add cyclic and multi-path smoke-test cases to catch regress…
alanshurafa Apr 18, 2026
1e26c33
[recipes] Fix REVIEW-CODEX-2-P1: smoke-test cycle assertion honors bi…
alanshurafa Apr 18, 2026
cd11bf0
[recipes] Fix REVIEW-CODEX-3-P1: tighten cycle assertion to exact len…
alanshurafa Apr 18, 2026
d5d24d6
[schemas] Fix REVIEW-CLAUDE-MEDIUM-1: ANALYZE as explicit post-migrat…
alanshurafa Apr 18, 2026
beb4818
[recipes] Fix REVIEW-CLAUDE-WR-01: scenarioMultiPath arithmetic — par…
alanshurafa Apr 18, 2026
c3c8867
[recipes] Fix REVIEW-CLAUDE-WR-02: service_role-only execute on find_…
alanshurafa Apr 18, 2026
3c925a1
[recipes] Fix REVIEW-CLAUDE-IN-01: version bump 1.0.0 → 1.0.1 for bug…
alanshurafa Apr 18, 2026
1db2770
[recipes] Fix REVIEW-CODEX-5-P3: runtime version strings in index.ts …
alanshurafa Apr 18, 2026
133d9b9
[recipes] Fix markdownlint MD031: blank lines around fenced code bloc…
alanshurafa Apr 19, 2026
2dca890
[recipes] Fix markdownlint MD028: separate NOTE and WARNING blockquot…
alanshurafa Apr 19, 2026
8b52e0e
Merge branch 'main' into integrations/telegram-capture
Reb-Elle-Art Apr 20, 2026
686d2fa
[schemas] Fix invalid || concatenation in typed-reasoning-edges COMMENT
spiritualsystems Apr 23, 2026
49ebfbc
[integrations] update_thought MCP with if_unchanged_since
txcfi-scott Apr 23, 2026
13629bd
[schemas] thought_audit table for multi-participant attribution
txcfi-scott Apr 23, 2026
3ae4cdf
[schemas] add recency-boosted match_thoughts RPC variant
txcfi-scott Apr 23, 2026
8a9e70c
[schemas] Add readwise-books cache table and helper RPCs
mlava Apr 23, 2026
5c161aa
[integrations] Add readwise-capture webhook receiver
mlava Apr 23, 2026
03602ad
[recipes] Add readwise-import backfill recipe
mlava Apr 23, 2026
7e809cb
[recipes] Add selective backfill flags to readwise-import
mlava Apr 23, 2026
4319d76
[recipes] Fix readwise-import --list-books output
mlava Apr 23, 2026
a312e4f
[recipes] Fix readwise_books.num_highlights after backfill
mlava Apr 23, 2026
52dbfe3
[recipes] Handle Supabase statement_timeout during bulk inserts
mlava Apr 23, 2026
885c068
[integrations] Handle empty body in readwise-capture
mlava Apr 23, 2026
e0a43ac
[integrations] Fix Readwise webhook URL in readwise-capture README
mlava Apr 23, 2026
392e529
[integrations] Fix readwise-capture secret flow in README
mlava Apr 24, 2026
8dea938
[integrations] Correct Readwise plan claim in readwise-capture README
mlava Apr 24, 2026
fee546d
[dashboards] open-brain-dashboard-next: bump next to 16.2.4
tswicegood Apr 27, 2026
e4f74d1
Merge branch 'contrib/tswicegood/dashboard-next-bump' into contrib/ts…
tswicegood Apr 27, 2026
ef8cf73
[dashboards] open-brain-dashboard-next: add Cloudflare Workers deploy…
tswicegood Apr 27, 2026
0609b47
[dashboards] Canonical landing page for openbrain.fyi
snapsynapse May 3, 2026
80907cc
[dashboards] Trim donation step from landing-page README
snapsynapse May 3, 2026
1a15d5b
[recipes/typed-edge-classifier] Add OpenRouter provider support
sahwan11 May 7, 2026
c1cc2ae
docs(schema-aware-routing): document OpenRouter as alternative provider
jjshanks May 8, 2026
7bd2532
[recipes] Add editorial-policy + weekly auditor recipe
HansBohlmann May 9, 2026
c15f32b
[recipes] Add auditor function to editorial-policy recipe
HansBohlmann May 9, 2026
7814aa0
feat(integrations): add hermes-agent-memory native provider for OB1
MicScalise May 9, 2026
bb26975
fix(openclaw-agent-memory): wire memory-host hooks for auto-recall (#…
MicScalise May 9, 2026
dfc5385
fix(hermes-agent-memory): default scope.visibility=personal, include_…
MicScalise May 9, 2026
f4003e3
feat(hermes-agent-memory): add workspace_mode for per-agent isolation
MicScalise May 10, 2026
0df61b1
[recipes] Add local-brain-no-mcp + ob1-local-http skill
claude May 13, 2026
85390f1
[schemas] Make enhanced-thoughts self-contained for status columns
lucifer May 15, 2026
271be27
[docs] Refresh OB1 PR gate workflow registration
Humestone May 17, 2026
71a4205
[integrations] Add OpenClaw Agent Memory tool schemas
Humestone May 17, 2026
36f18f8
[schemas] Add per-agent identity primitive
May 18, 2026
e35d03f
[integrations] Smart ingest edge function
alanshurafa Apr 6, 2026
29998c0
fix: atomic job execution CAS and graceful embedding fallback
alanshurafa Apr 6, 2026
d580846
[integrations] Fix REVIEW-BLOCKER-2: add fetchWithTimeout helper
alanshurafa Apr 18, 2026
a9f0634
[integrations] Fix REVIEW-BLOCKER-1/3, HIGH-1/2/3/6/7/9/11 in index.ts
alanshurafa Apr 18, 2026
4a0362c
[integrations] Document smart-ingest cost caps, threat model, deno tasks
alanshurafa Apr 18, 2026
78097ff
[docs] Fix pre-existing markdownlint errors across 8 files
alanshurafa Apr 22, 2026
8658545
[docs] Markdownlint sweep for existing recipe/schema docs
alanshurafa May 20, 2026
ff4cce0
hermes-agent-memory: address reviewer feedback (license + include_unc…
MicScalise May 20, 2026
e920507
[recipes] Comment empty-body no-op in readwise-capture webhook
mlava May 21, 2026
7588938
Merge remote-tracking branch 'origin/main' into contrib/alanshurafa/s…
alanshurafa May 22, 2026
a42695f
[server] Return JSON-RPC error envelopes on auth failure
txcfi-scott May 22, 2026
f419ee4
[docs] Document Edge Function redeploy step in OpenRouter rotation FAQ
Silverhawk-bit May 22, 2026
d96f168
docs: fix outdated primitives section in README
jjshanks May 22, 2026
eb68169
dashboards(next): enable standalone output for Docker builds
Mavrick-F May 22, 2026
22a0e8e
[recipes] Load .env into wiki-compiler child processes
mlava May 22, 2026
6334bba
[recipes] Preserve full frontmatter in obsidian-vault-import metadata
dhanjit May 22, 2026
1f7d47d
[recipes] obsidian-vault-import: --source-label to override metadata.…
dhanjit May 22, 2026
f5457ee
[recipes] Edge function cost optimization
JustinTSmith May 22, 2026
dd0e700
[extensions] CRM improvements: crm_ prefix, FTS search, meeting prep,…
pintomatic May 22, 2026
1ec32d5
[recipes] Brain smoke test — install verification harness
alanshurafa May 22, 2026
63c1a18
[recipes] Atomizer — generic + Gmail re-atomization toolkit
alanshurafa May 22, 2026
0b91c39
[dashboards] Open Brain Dashboard Pro — Next.js 16 + iron-session
alanshurafa May 22, 2026
4a0af90
[schemas][recipes] Provenance chains - derivation tracking (#207)
alanshurafa May 22, 2026
7e95356
[docs] Add README recent contributions
justfinethanku May 22, 2026
e0542ad
[docs] Credit community reviewer in README
justfinethanku May 22, 2026
1fc65bc
[docs] Correct README maintainer roles
justfinethanku May 22, 2026
048ee51
[docs] Refine README team credits
justfinethanku May 22, 2026
ef64fec
[docs] Add parallel agent worktree policy
justfinethanku May 22, 2026
097f60f
feat(agent-memory): harden local recall and governance guards
Humestone May 22, 2026
726dedd
Merge branch 'main' into contrib/snapsynapse/canonical-landing-page
snapsynapse May 22, 2026
c8c5fa4
Fix OB1 Agent Memory OpenClaw tool schemas
justfinethanku May 22, 2026
9ff6135
Fix OB1 Agent Memory ClawHub install metadata
justfinethanku May 22, 2026
e34361b
Harden agent memory API scope harness
Humestone May 23, 2026
1f29128
[integrations] Flag smart-ingest README as CLI-only until UX ships
alanshurafa May 26, 2026
9a8d428
[integrations] Drop smart-ingest README callout
alanshurafa May 26, 2026
45fee3d
Merge branch 'main' into contrib/alanshurafa/ob-graph-bfs-fix
justfinethanku Jun 1, 2026
acf59ca
docs: add community credit badge to ob-graph
justfinethanku Jun 1, 2026
47d2a89
Merge pull request #210 from alanshurafa/contrib/alanshurafa/ob-graph…
justfinethanku Jun 1, 2026
ada4d78
Merge branch 'main' into contrib/alanshurafa/text-search-trgm
justfinethanku Jun 1, 2026
5388acb
docs: add community credit badge to text search trgm
justfinethanku Jun 1, 2026
70f26e5
Merge pull request #206 from alanshurafa/contrib/alanshurafa/text-sea…
justfinethanku Jun 1, 2026
38f4bad
Merge branch 'main' into contrib/alanshurafa/weekly-digest
justfinethanku Jun 1, 2026
aaf34fb
docs: add community credit badge to weekly digest
justfinethanku Jun 1, 2026
4bf87d6
Merge pull request #205 from alanshurafa/contrib/alanshurafa/weekly-d…
justfinethanku Jun 1, 2026
e8775ec
Merge branch 'main' into contrib/alanshurafa/lint-sweep
justfinethanku Jun 1, 2026
1ffda93
docs: add community credit badge to lint sweep
justfinethanku Jun 1, 2026
aeaa07b
Merge pull request #204 from alanshurafa/contrib/alanshurafa/lint-sweep
justfinethanku Jun 1, 2026
df063f3
Merge branch 'main' into contrib/txcfi-scott/recency-boosted-match-th…
justfinethanku Jun 1, 2026
def42a9
docs: add community credit badge to recency match
justfinethanku Jun 1, 2026
a328264
Merge pull request #231 from txcfi-scott/contrib/txcfi-scott/recency-…
justfinethanku Jun 1, 2026
539f436
Merge branch 'main' into contrib/txcfi-scott/thought-audit
justfinethanku Jun 1, 2026
b81bdb6
docs: add community credit badge to thought audit
justfinethanku Jun 1, 2026
21d7ec4
Merge pull request #230 from txcfi-scott/contrib/txcfi-scott/thought-…
justfinethanku Jun 1, 2026
e729774
Merge branch 'main' into contrib/txcfi-scott/update-thought-mcp
justfinethanku Jun 1, 2026
ee0ae5f
docs: add community credit badge to update thought mcp
justfinethanku Jun 1, 2026
5b6a2f5
Merge pull request #228 from txcfi-scott/contrib/txcfi-scott/update-t…
justfinethanku Jun 1, 2026
6da31de
Merge branch 'main' into contrib/mlava/readwise
justfinethanku Jun 1, 2026
7babac8
docs: add community credit badges to readwise
justfinethanku Jun 1, 2026
55fa8ec
Merge pull request #237 from mlava/contrib/mlava/readwise
justfinethanku Jun 1, 2026
8534b91
Merge branch 'main' into contrib/recipe-editorial-policy
justfinethanku Jun 1, 2026
6559f71
docs: add community credit badge to editorial policy
justfinethanku Jun 1, 2026
2cd6ce6
Merge pull request #276 from HansBohlmann/contrib/recipe-editorial-po…
justfinethanku Jun 1, 2026
27f3a4a
Merge branch 'main' into contrib/sahwan11/typed-edge-classifier-openr…
justfinethanku Jun 1, 2026
d5af738
docs: add community credit badge to typed edge classifier
justfinethanku Jun 1, 2026
f16479e
Merge pull request #271 from sahwan11/contrib/sahwan11/typed-edge-cla…
justfinethanku Jun 1, 2026
7f74a62
Merge branch 'main' into contrib/tswicegood/dashboard-next-bump
justfinethanku Jun 1, 2026
cdf3a0a
Merge remote-tracking branch 'origin/main' into pr-273-update
justfinethanku Jun 4, 2026
3f8521e
docs: add community contribution credit
justfinethanku Jun 4, 2026
0144dec
Merge remote-tracking branch 'origin/main' into pr-321-update
justfinethanku Jun 4, 2026
2c0bfe4
docs: add community contribution credit
justfinethanku Jun 4, 2026
17afc50
Merge pull request #273 from jjshanks/docs/schema-aware-routing-openr…
justfinethanku Jun 4, 2026
b782065
Merge pull request #321 from jeremylahners/codex/per-agent-identity
justfinethanku Jun 4, 2026
ede09bf
Merge remote-tracking branch 'origin/main' into pr-190-refresh
justfinethanku Jun 4, 2026
a1bfcb4
Merge remote-tracking branch 'origin/main' into pr-305-update
justfinethanku Jun 4, 2026
14c39d2
Merge pull request #305 from lucifer/contrib/lucifer/enhanced-thought…
justfinethanku Jun 4, 2026
004951b
Merge pull request #190 from Reb-Elle-Art/integrations/telegram-capture
justfinethanku Jun 4, 2026
24d8109
Merge branch 'main' into contrib/tswicegood/dashboard-next-bump
justfinethanku Jun 5, 2026
3f18e27
Merge pull request #247 from tswicegood/contrib/tswicegood/dashboard-…
justfinethanku Jun 5, 2026
3f04ffa
Merge branch 'main' into contrib/humestone/ob1-gate-v2
justfinethanku Jun 5, 2026
f1b71d6
Merge pull request #308 from Humestone/contrib/humestone/ob1-gate-v2
justfinethanku Jun 5, 2026
6087b12
Merge pull request #309 from Humestone/contrib/humestone/openclaw-too…
justfinethanku Jun 5, 2026
6acdff4
Merge pull request #281 from MicScalise/fix-279-openclaw-memory-host-…
justfinethanku Jun 5, 2026
8eb8baf
Merge pull request #304 from dhanjit/contrib/dhanjit/local-brain-no-mcp
justfinethanku Jun 5, 2026
fa405fd
Merge pull request #258 from snapsynapse/contrib/snapsynapse/canonica…
justfinethanku Jun 5, 2026
74628a6
[docs] Fix Telegram README Markdownlint
alanshurafa Jun 6, 2026
170ad6d
Update Alan maintainer credit
justfinethanku Jun 8, 2026
6844e13
Merge branch 'main' into codex/telegram-markdownlint-fix
justfinethanku Jun 8, 2026
4ba44a3
Merge pull request #345 from alanshurafa/codex/telegram-markdownlint-fix
justfinethanku Jun 8, 2026
624e080
docs: add community credit to smart ingest
justfinethanku Jun 8, 2026
0e8249e
docs: add community credit to Hermes Agent Memory
justfinethanku Jun 8, 2026
0319a6f
Merge branch 'main' into contrib/spiritualsystems/fix-typed-edges-com…
justfinethanku Jun 8, 2026
4731d65
Merge pull request #227 from spiritualsystems/contrib/spiritualsystem…
justfinethanku Jun 8, 2026
4216d46
docs: remove stale Hermes license reference
justfinethanku Jun 8, 2026
11b6407
Merge branch 'main' into add-hermes-agent-memory
justfinethanku Jun 8, 2026
da47d25
Merge pull request #280 from MicScalise/add-hermes-agent-memory
justfinethanku Jun 8, 2026
472b533
Merge branch 'main' into contrib/alanshurafa/smart-ingest
justfinethanku Jun 8, 2026
5d3f6ab
Merge pull request #198 from alanshurafa/contrib/alanshurafa/smart-in…
justfinethanku Jun 8, 2026
4795ce7
Merge branch 'main' into contrib/tswicegood/dashboard-cloudflare-deploy
justfinethanku Jun 8, 2026
351da6c
Merge pull request #248 from tswicegood/contrib/tswicegood/dashboard-…
justfinethanku Jun 8, 2026
91fb439
Merge local main hardening commits (scope harness, recall guards)
Humestone Jun 11, 2026
10bc0a2
Merge remote-tracking branch 'origin/main' into stone/upstream-sync-2…
Humestone Jun 11, 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
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
name: OB1 PR Gate

# This workflow used to live at `.github/workflows/ob1-gate.yml`.
# It was renamed to force GitHub Actions to register a fresh workflow after
# the old workflow id began creating runs with zero jobs.
# This copy carries the Humestone hardening (env-passed untrusted values,
# fail-closed diffs, title-bypass fix) applied to the pre-rename file.
#
# ── Branch protection setup (admin-only, one-time) ──────────────
# 1. Settings → Branches → Add branch protection rule for "main"
# 2. Check "Require status checks to pass before merging"
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/ob1-pr-followups.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
workflow_run:
workflows:
- "OB1 PR Gate"
- ".github/workflows/ob1-gate-v2.yml"
- ".github/workflows/ob1-gate.yml"
types: [completed]

Expand Down
38 changes: 38 additions & 0 deletions .github/workflows/update-readme-contributions.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Update README Contributions

on:
workflow_dispatch:
schedule:
- cron: "17 9 * * *"

permissions:
contents: write
pull-requests: write

jobs:
update:
runs-on: ubuntu-latest
steps:
- name: Checkout main
uses: actions/checkout@v4
with:
ref: main

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "22"

- name: Update README recent contributions
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: node scripts/update-readme-contributions.mjs

- name: Open README update PR
uses: peter-evans/create-pull-request@v6
with:
commit-message: "[docs] Refresh README recent contributions"
title: "[docs] Refresh README recent contributions"
body: "Automated refresh of the generated Recent Contributions section in README.md."
branch: automation/readme-recent-contributions
delete-branch: true
41 changes: 41 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,46 @@
# OB1 Agent Instructions

## Parallel Agent Worktrees

When multiple AI agents or assistant chats work on this repo, do not put them in the same checkout.

### Setup pattern

- Treat the main repo checkout as the canonical repo for pulling, inspection, and creating worktrees.
- Create one Git worktree per active agent, task, or PR-sized workstream.
- Give each worktree a descriptive folder name and a matching branch name.
- Start every agent task by naming the exact absolute worktree path it owns.
- The assigned worktree path is the boundary. The chat is not the boundary.

### Agent assignment template

Start each parallel-agent task with:

```text
Repository worktree:
/ABSOLUTE/PATH/TO/PROJECT-WORKTREE

Branch:
codex/SHORT-TASK-NAME

Task:
DESCRIBE THE EXACT WORK.
```

### Rules

- Do not switch branches in the canonical repo while another agent may be working.
- Do not edit sibling worktrees unless explicitly asked.
- Before staging or committing, run `git status --short` and stage only files that belong to the current task.
- If `main` or another branch changed underneath the worktree, pause before merging or rebasing unless the task explicitly says to finish the PR end to end.
- After a branch is merged and the worktree is clean, remove the finished worktree with `git worktree remove /ABSOLUTE/PATH/TO/PROJECT-WORKTREE`.

### Quick checks

- If another chat suddenly changed branches, both chats were probably in the same working directory.
- If `git worktree add` says a branch is already checked out, create a new branch name or remove the old clean worktree.
- If cleanup fails, inspect `git status --short` and preserve uncommitted work.

## Required Step: Update Linear

- For feature work tied to a Linear issue, update Linear at the start of the work, at meaningful checkpoints, and before handing back to the user.
Expand Down
46 changes: 44 additions & 2 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,47 @@ resources/ — Official companion files and packaged exports.

Every contribution lives in its own subfolder under the right category and must include `README.md` + `metadata.json`.

## Parallel Agent Worktrees

When multiple AI agents or assistant chats work on this repo, do not put them in the same checkout.

### Setup pattern

- Treat the main repo checkout as the canonical repo for pulling, inspection, and creating worktrees.
- Create one Git worktree per active agent, task, or PR-sized workstream.
- Give each worktree a descriptive folder name and a matching branch name.
- Start every agent task by naming the exact absolute worktree path it owns.
- The assigned worktree path is the boundary. The chat is not the boundary.

### Agent assignment template

Start each parallel-agent task with:

```text
Repository worktree:
/ABSOLUTE/PATH/TO/PROJECT-WORKTREE

Branch:
codex/SHORT-TASK-NAME

Task:
DESCRIBE THE EXACT WORK.
```

### Rules

- Do not switch branches in the canonical repo while another agent may be working.
- Do not edit sibling worktrees unless explicitly asked.
- Before staging or committing, run `git status --short` and stage only files that belong to the current task.
- If `main` or another branch changed underneath the worktree, pause before merging or rebasing unless the task explicitly says to finish the PR end to end.
- After a branch is merged and the worktree is clean, remove the finished worktree with `git worktree remove /ABSOLUTE/PATH/TO/PROJECT-WORKTREE`.

### Quick checks

- If another chat suddenly changed branches, both chats were probably in the same working directory.
- If `git worktree add` says a branch is already checked out, create a new branch name or remove the old clean worktree.
- If cleanup fails, inspect `git status --short` and preserve uncommitted work.

## Guard Rails

- **Never modify the core `thoughts` table structure.** Adding columns is fine; altering or dropping existing ones is not.
Expand All @@ -38,13 +79,14 @@ Every contribution lives in its own subfolder under the right category and must
- **Title format:** `[category] Short description` (e.g., `[recipes] Email history import via Gmail API`, `[skills] Panning for Gold standalone skill pack`)
- **Branch convention:** `contrib/<github-username>/<short-description>`
- **Commit prefixes:** `[category]` matching the contribution type
- Every PR must pass the automated review checks in `.github/workflows/ob1-review.yml` before human review
- Every PR must pass the automated review checks in `.github/workflows/ob1-gate-v2.yml` before human review
- See `CONTRIBUTING.md` for the full review process, metadata.json template, and README requirements

## Key Files

- `CONTRIBUTING.md` — Source of truth for contribution rules, metadata format, and the review process
- `.github/workflows/ob1-review.yml` — Automated PR review
- `.github/workflows/ob1-gate-v2.yml` — Automated PR gate
- `.github/workflows/claude-review.yml` — Maintainer-triggered Claude PR review
- `.github/metadata.schema.json` — JSON schema for metadata.json validation
- `.github/PULL_REQUEST_TEMPLATE.md` — PR description template
- `LICENSE.md` — FSL-1.1-MIT terms
Expand Down
56 changes: 38 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,8 @@ This isn't a notes app. It's a database with vector search and an open protocol

> Open Brain was created by [Nate B. Jones](https://natesnewsletter.substack.com/). Follow the [Substack](https://natesnewsletter.substack.com/) for updates, discussion, and the companion prompt pack. Join the [Discord](https://discord.gg/Cgh9WJEkeG) for real-time help and community.

https://github.com/user-attachments/assets/80a79b09-f323-42c6-b11b-de10bb6fa36f

## Getting Started

https://github.com/user-attachments/assets/85208d73-112b-4204-82fd-d03b6c397a8b

Never built an Open Brain? Start here:

1. **[Setup Guide](docs/01-getting-started.md)** — Build the full system (database, AI gateway, Slack capture, MCP server) in about 45 minutes. No coding experience needed. Or watch the [video walkthrough](https://vimeo.com/1174979042/f883f6489a) (~27 min).
Expand All @@ -25,9 +21,38 @@ Never built an Open Brain? Start here:

**If you hit a wall:** We built a [FAQ](docs/03-faq.md) that covers the most common questions and gotchas. And if you need real-time help, we created dedicated AI assistants that know this system inside and out: a [Claude Skill](https://www.notion.so/product-templates/Open-Brain-Companion-Claude-Skill-31a5a2ccb526802797caeb37df3ba3cb?source=copy_link), a [ChatGPT Custom GPT](https://chatgpt.com/g/g-69a892b6a7708191b00e48ff655d5597-nate-jones-open-brain-assistant), and a [Gemini GEM](https://gemini.google.com/gem/1fDsAENjhdku-3RufY7ystbS1Md8MtDCg?usp=sharing). Use whichever one matches the AI tool you already use.

## Extensions — The Learning Path
## Recent Contributions

The 20 most recent merged PRs. This list is generated from GitHub and refreshes daily. Last updated: 2026-05-22.

<!-- recent-contributions:start -->

| Contribution | What changed | Creator |
| ------------ | ------------ | ------- |
| [Provenance chains — derivation tracking](recipes/provenance-chains/) | Provenance chains — derivation tracking. | [@alanshurafa](https://github.com/alanshurafa) |
| [Open Brain Dashboard Pro — Next.js 16 + iron-session](dashboards/open-brain-dashboard-pro/) | Open Brain Dashboard Pro — Next.js 16 + iron-session. | [@alanshurafa](https://github.com/alanshurafa) |
| [Atomizer — generic + Gmail re-atomization toolkit](recipes/atomizer/) | Atomizer — generic + Gmail re-atomization toolkit. | [@alanshurafa](https://github.com/alanshurafa) |
| [Brain smoke test — install verification harness](recipes/brain-smoke-test/) | Brain smoke test — install verification harness. | [@alanshurafa](https://github.com/alanshurafa) |
| [CRM improvements: crm_ prefix, FTS search, meeting prep, stale detection](extensions/professional-crm/) | CRM improvements: crm_ prefix, FTS search, meeting prep, stale detection. | [@pintomatic](https://github.com/pintomatic) |
| [Edge function cost optimization — 73% invocation reduction](recipes/edge-function-cost-optimization/) | Edge function cost optimization — 73% invocation reduction. | [@JustinTSmith](https://github.com/JustinTSmith) |
| [Obsidian-vault-import: --source-label to override metadata.source](recipes/obsidian-vault-import/) | Obsidian-vault-import: --source-label to override metadata.source. | [@dhanjit](https://github.com/dhanjit) |
| [Preserve full frontmatter in obsidian-vault-import metadata](recipes/obsidian-vault-import/) | Preserves full frontmatter in obsidian-vault-import metadata. | [@dhanjit](https://github.com/dhanjit) |
| [Load .env into wiki-compiler child processes](recipes/wiki-compiler/) | Loads .env into wiki-compiler child processes. | [@mlava](https://github.com/mlava) |
| [Enable standalone output for Docker builds](dashboards/open-brain-dashboard-next/) | Enables standalone output for Docker builds. | [@Mavrick-F](https://github.com/Mavrick-F) |
| [Fix outdated primitives section in README](README.md) | Fixes outdated primitives section in README. | [@jjshanks](https://github.com/jjshanks) |
| [Document Edge Function redeploy step in OpenRouter rotation FAQ](docs/03-faq.md) | Documents Edge Function redeploy step in OpenRouter rotation FAQ. | [@Silverhawk-bit](https://github.com/Silverhawk-bit) |
| [Return JSON-RPC error envelopes on auth failure](server/index.ts) | Returns JSON-RPC error envelopes on auth failure. | [@txcfi-scott](https://github.com/txcfi-scott) |
| [Markdownlint sweep for existing recipe/schema docs](schemas/workflow-status/) | Markdownlint sweep for existing recipe/schema docs. | [@alanshurafa](https://github.com/alanshurafa) |
| [Improve ChatGPT MCP compatibility](primitives/remote-mcp/) | Improves ChatGPT MCP compatibility. | [@justfinethanku](https://github.com/justfinethanku) |
| [Add wiki compiler orchestration recipe](recipes/wiki-compiler/) | Adds wiki compiler orchestration recipe. | [@justfinethanku](https://github.com/justfinethanku) |
| [Wiki synthesis + autobiography pipeline](recipes/wiki-synthesis/) | Wiki synthesis + autobiography pipeline. | [@alanshurafa](https://github.com/alanshurafa) |
| [Entity wiki pages from knowledge graph](recipes/entity-wiki/) | Entity wiki pages from knowledge graph. | [@alanshurafa](https://github.com/alanshurafa) |
| [Typed reasoning edges + Opus/Haiku classifier](schemas/typed-reasoning-edges/) | Typed reasoning edges + Opus/Haiku classifier. | [@alanshurafa](https://github.com/alanshurafa) |
| [Entity extraction worker](integrations/entity-extraction-worker/) | Entity extraction worker. | [@alanshurafa](https://github.com/alanshurafa) |

<!-- recent-contributions:end -->

https://github.com/user-attachments/assets/cc477f00-bb6b-4f96-9f7d-a6bcd0cf8b60
## Extensions — The Learning Path

Build these in order. Each one teaches new concepts through something you'll actually use. By the end, your agent manages your household, your schedule, your meals, your professional network, and your career — all interconnected.

Expand All @@ -44,19 +69,18 @@ Extensions compound. Your CRM knows about thoughts you've captured. Your meal pl

## Primitives: Concepts That Compound

https://github.com/user-attachments/assets/f488e495-fe2a-4ccc-a834-fc6ab5a0ed41

Some concepts show up in multiple extensions. Learn them once, apply them everywhere.

| Primitive | What It Teaches | Used By |
| --------- | --------------- | ------- |
| [Deploy an Edge Function](primitives/deploy-edge-function/) | Deploying any extension as a Supabase Edge Function | All extensions |
| [Remote MCP Connection](primitives/remote-mcp/) | Connecting to Claude Desktop, ChatGPT, Claude Code, Cursor, and other clients | All extensions |
| [Common Troubleshooting](primitives/troubleshooting/) | Solutions for connection, deployment, and database issues | All extensions |
| [Row Level Security](primitives/rls/) | PostgreSQL policies for multi-user data isolation | Extensions 4, 5, 6 |
| [Shared MCP Server](primitives/shared-mcp/) | Giving others scoped access to parts of your brain | Extension 4 |

## Community Contributions

https://github.com/user-attachments/assets/9454662f-2648-4928-8723-f7d52e94e9b8

Beyond the curated learning path, the community builds and shares real tools that real people use. Every contribution below was reviewed, approved, and merged by the maintainer team. Look for the **Community Contribution** badge in each README.

### [`/recipes`](recipes/) — Import Your Data
Expand Down Expand Up @@ -145,12 +169,6 @@ Tables and sidecars that extend the base `thoughts` model without replacing it.
| ------ | ------------ | ----------- |
| [Agent Memory](schemas/agent-memory/) | Provenance, review, use-policy, source-reference, relation, recall-trace, and audit sidecars for agent workflow memory | OB1 Team |

### [`/primitives`](primitives/) — Reusable Patterns

| Primitive | What It Does | Contributor |
| --------- | ------------ | ----------- |
| [Content Fingerprint Dedup](primitives/content-fingerprint-dedup/) | SHA-256 deduplication for thought ingestion — prevents duplicates across all import recipes | [@alanshurafa](https://github.com/alanshurafa) |

## Using a Contribution

1. Browse the category tables above or the folders in the repo
Expand All @@ -166,7 +184,7 @@ Read [CONTRIBUTING.md](CONTRIBUTING.md) for the full details. The short version:
- **Primitives** should be referenced by 2+ extensions to justify extraction
- **Recipes, schemas, dashboards, integrations, and skills** are open for community contributions
- Every PR runs through an automated review agent that checks structure, secrets, SQL safety, dependencies, and documentation quality
- If the agent passes, a human admin reviews for quality and clarity
- If the agent passes, a human maintainer reviews for quality and clarity
- Your contribution needs a README with real instructions and a `metadata.json` with structured info

## Community
Expand All @@ -176,7 +194,9 @@ Read [CONTRIBUTING.md](CONTRIBUTING.md) for the full details. The short version:

## Who Maintains This

Built by Nate B. Jones's team. Matt Hallett is the first community admin and repo manager. PRs are reviewed by the automated agent + human admins.
Created by [Nate B. Jones](https://github.com/NateBJones).

The OB1 repo team: [Jonathan Edwards](https://github.com/justfinethanku), Repo Manager; [Matt Hallett](https://github.com/matthallett1), Community Admin; [Alan Shurafa](https://github.com/alanshurafa), Community Maintainer. PRs are reviewed by the automated agent + human maintainers.

## License

Expand Down
68 changes: 68 additions & 0 deletions dashboards/ob1-canonical-landing/404.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Page not found &mdash; Open Brain</title>
<meta name="robots" content="noindex">
<meta name="theme-color" content="#e05a20">
<link rel="icon" type="image/png" sizes="32x32" href="/imgs/favicon-32.png">
<link rel="apple-touch-icon" href="/imgs/apple-touch-icon.png">
<link rel="canonical" href="https://openbrain.fyi/">
<style>
:root {
--accent: #e05a20;
--bg: #0d1117;
--surface: #161b22;
--text: #e6edf3;
--muted: #8b949e;
--border: rgba(255,255,255,.08);
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; }
body {
background: linear-gradient(160deg, #0f1b33 0%, var(--bg) 60%);
color: var(--text);
font-family: system-ui, -apple-system, sans-serif;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
min-height: 100vh;
padding: 2rem;
text-align: center;
}
.logo-wrap { margin-bottom: 2rem; opacity: .6; }
.code {
font-size: clamp(4rem, 20vw, 8rem);
font-weight: 800;
line-height: 1;
color: var(--accent);
letter-spacing: -.04em;
}
h1 { font-size: clamp(1.25rem, 4vw, 1.75rem); font-weight: 600; margin: 1rem 0 0.5rem; }
p { color: var(--muted); font-size: 1rem; max-width: 38ch; line-height: 1.6; }
.home-link {
display: inline-block;
margin-top: 2rem;
padding: 0.65rem 1.4rem;
background: var(--accent);
color: var(--bg);
border-radius: 6px;
font-weight: 600;
font-size: 0.95rem;
text-decoration: none;
}
.home-link:hover { opacity: .88; }
</style>
</head>
<body>
<div class="logo-wrap">
<img src="/imgs/ob1-logo.png" alt="" width="64" height="64" style="border-radius:10px;">
</div>
<div class="code">404</div>
<h1>Page not found</h1>
<p>This page doesn&rsquo;t exist. The brain has no memory of it.</p>
<a href="https://openbrain.fyi/" class="home-link">Return home &rarr;</a>
</body>
</html>
1 change: 1 addition & 0 deletions dashboards/ob1-canonical-landing/CNAME
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
openbrain.fyi
Loading
Loading