The core/ and remote/ proposals described work that has shipped. What they
said that the architecture docs lacked now lives there: the MCP client's
rules, what the gateway does today, what a plugin can reach, adding a plugin
to the host, who changes proprietary/, and the backend's copy of the
scrapers. proposals/plugins/README.md now holds only what is not built: the
chat router step, jobs and scaling on the host, organisation policy, later
MCP features and the open questions. Bundles stay deferred, with their
registry entry moved in. ADRs 0051, 0053 and 0054 are accepted, and links
into the deleted files point at the architecture docs.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- chat.md, overview.md: how a streamed token renders only the live reply
(runSummaries, the 32 ms notice gap, LiveThreadRuntime, the bounded
highlighter, memoized panels) and that the columns resize.
- model-capabilities.md, agent.md, data-model.md, 07-dev-setup.md: the two
chat modes, their gates and defaults, where a pick is stored, the 0-id fix,
and how to re-run the OpenRouter sweep and regenerate capabilities.json.
- RELEASE.md: the steps 2.2.0 was released by, from the bump (with its
PowerShell form) to the tag on the merge, the Known issues, an optional
update check and publishing with --latest; dry runs are signed.
- 06-repo-readme.md, AGENTS.md, README.md's comment: the README's structure,
how to change it and its translations, re-checking the format table, and
replacing the demo video.
- Stale statements fixed (the Apple agreement, opencode never shipped, three
languages, Studio's exec(), proposal statuses, the roadmap), and each gap
still open after the release in its doc's Known gaps, linked to #2219-#2230.
plugins/remote/host mounts each plugin folder's MCP server at /<id>/mcp and
answers /health; without proprietary/ it serves only the Apache-2.0 plugins.
A plugin's access hook runs before its server sees a request, and
proprietary/license_check applies contract 2 with Keygen's validate-key: a
five-minute cache, a day's grace while Keygen is down, and 401, 403 or 503
otherwise. The check is license_check/, since license/ beside LICENSE is one
path on macOS and Windows. CI checks plugins/remote/ on its own.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The root LICENSE names the folder, which holds its own copy of the Business
Source License. CODEOWNERS gives it to the maintainers, and code-quality.yml
fails a pull request from anyone else that touches either proprietary/ folder,
so SurfSense holds all of that code's copyright and needs no contributor
agreement. The docs and ADRs say so.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Plugins are being built as remote MCP servers first. The earlier, local
design's SDK, CLI, manifest rules and example move from plugins/core/ and
plugins/example/ to plugins/bundles/, deferred with bundles, so the top of
plugins/ is free for the plugin host and the registry. No behaviour change.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The desktop frontend is fully on Base UI and surfsense_web is not
being migrated, so the skill has nothing left to do. Its lasting
rules live in frontend-workflow/base-ui.md.
Drop its row from the AGENTS.md skills table and name base-ui.md in
the frontend-workflow row.
Check the architecture pages the catalog PRs (#1899-#1902) touched against the code, correct what no longer matches, and add the Known gaps found on the way.
Fix the model catalog proposal's lines about the present, note its revisions on ADRs 0011 and 0015 and in the ADR index, update the SEO fact table for the new manifest, and mark the plugins tree in AGENTS.md as planned until it lands.
Co-authored-by: Cursor <cursoragent@cursor.com>
Plugin docs moved to docs/proposals/plugins on dev; resolve against the
loopback-API design here, keeping dev's per-host egress consent, trial
unlock and open questions. runtime/02-calls-and-results.md stays deleted.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- Clarified the status of the hosted service in AGENTS.md, including data purge dates.
- Updated language links in README files to include additional languages: Arabic, German, French, Japanese, Korean, and Russian.
- Adjusted README comments regarding sunset callout consistency across localized versions.
Move the engineering specs out of plans/ into a root docs/ folder.
architecture/ describes what is true in the code now, one doc per
feature. adr/ records decisions: 0003 is restored and 0004-0027 are
new. proposals/ holds designs not built yet: plugins and the CUDA
backend. contracts/ holds the frozen interfaces between trees, with
the fixtures their tests read. ROADMAP.md names the initiatives.
The shipped phase plans are deleted; git history keeps them. plans/
keeps business, launch and ops material only.
Also: CONTRIBUTING.md rewritten around this flow, a CODEOWNERS file,
a Docs section in AGENTS.md, scripts/check_docs.py (was
check_plan_links.py) as a pre-commit hook, the backend tests path
filter extended to docs/contracts, and the five tests that read the
contract fixtures pointed at their new path.
Co-authored-by: Cursor <cursoragent@cursor.com>
README.es.md, README.pt-BR.md, README.hi.md and README.zh-CN.md all
still described the retired hosted product, which is why the language
switcher was commented out. Each is now a translation of the current
root README, tracking it section for section: same headings, table
shapes, bullet counts and images, with the in-page nav anchors
repointed at the translated headings.
The root README gains the per-platform download table on the
unversioned permalinks, and its Quick start step 1 stops repeating the
same link. AGENTS.md said not to edit the root README; the draft it
pointed at shipped on 18 Sep and says to edit the root file directly.
Co-authored-by: Cursor <cursoragent@cursor.com>
Bundle color-system, make-interfaces-feel-better, apple-design and
vercel-react-best-practices under frontend-workflow as color/, polish/,
motion/ and react-performance/. Their icon, colour and motion rules
overlapped with no shared parent to say which wins; the router now does.
Keep shadcn top-level — its allowed-tools grant and live `info --json`
substitution only work in a discovered SKILL.md.
Drop disable-model-invocation from frontend-workflow, which had kept the
router and its precedence rules out of context entirely.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>