docs: fix drift in Claude.ai (Web) - #265
Draft
jack-arturo wants to merge 1 commit into
Draft
Conversation
Remove the false "Flask defaults to port 5000" caution, correct the Last-Event-ID resumability claims (the /mcp transport is stateless and has no event store), and fix the attribution of the env-var token fallback in the token extraction priority list. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Bh4cvNW2mR2vCoyg3FDQL3
Deploying automem-website with
|
| Latest commit: |
e32f2b9
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://c6166112.automem-website.pages.dev |
| Branch Preview URL: | https://docs-audit-platforms-claude-3y31.automem-website.pages.dev |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Routine docs-accuracy audit of
src/content/docs/docs/platforms/claude-web.md(never previously reviewed — no entry inscripts/file-doc-map.json).The middle finding is the significant one: an entire troubleshooting section documents a resumability feature that is dead code.
:::caution— "The memory service must havePORT=8001set. Without it, Flask defaults to port 5000, causing connection refused errors from the sidecar."port = int(os.environ.get("PORT", "8001")). LeavingPORTunset is the working configuration, not a failure mode. This is the same "Flask defaults to 5000" myth already removed fromoverview,operations/troubleshooting, anddeployment/railway(#247) — this page andplatforms/chatgptwere the two that had never been swept.AUTOMEM_API_URLmust match whatever port the service listens on, which is8001unless you have overriddenPORT.Last-Event-IDfor resumability"; "SupportsLast-Event-IDfor stream resumability" (migration benefits); and a whole Stream replay section — "The sidecar'sInMemoryEventStorepersists events for 1 hour with a maximum of 1000 events per stream. If Claude.ai sends aLast-Event-IDheader on reconnect, the sidecar replays missed events automatically."InMemoryEventStoreis defined but never instantiated — there is nonew InMemoryEventStore(...)anywhere inserver.js; the only other references are two optional-chained calls (session.eventStore?.…) against SSE sessions that are created as{ transport, server, res, heartbeat, type: 'sse' }with noeventStoreproperty. The/mcptransport is built asnew StreamableHTTPServerTransport({ sessionIdGenerator: undefined, enableJsonResponse: true })— noeventStoreoption, which is what the SDK requires for replay. ALast-Event-IDheader is therefore a no-op, and no events are retained to replay.getAuthToken()function)" lists seven tiers, the seventh being "AUTOMEM_API_TOKENenvironment variable (fallback)"getAuthToken()— that function ends atreturn bearer || headerKey || queryKey. The env fallback is applied separately at each route:const token = getAuthToken(req) || process.env.AUTOMEM_API_TOKEN. The distinction matters operationally: withAUTOMEM_API_TOKENset on the sidecar, an unauthenticated request to/mcpsucceeds using the sidecar's own token rather than returning401.getAuthToken()actually checks, plus a sentence describing the route-level env fallback and its consequence.Spot-checked and correct, left untouched:
SESSION_TTL_MS = 60 * 60 * 1000,setInterval(…, 5 * 60 * 1000)) — though the sweep only reapstype === 'sse'sessions, which is now consistent with the corrected "SSE sessions" wording.setInterval(…, 20000)) and the anti-buffering headersX-Accel-Buffering: no/Cache-Control: no-cache./mcp,/mcp/sse,/mcp/messages,/health. SidecarPORTdefault8080(process.env.PORT || 8080).AUTOMEM_ENDPOINTlegacy alias confirmed.recall_memoryparameter listed (expand_relations,expand_entities,auto_decompose,expand_min_importance,expand_min_strength,context,language,active_path,context_tags,context_types,priority_ids) is present in the sidecar's tool schema.sessionIdmanagement needed" for Streamable HTTP — correct, and now consistent with the stateless description.Verified against: verygoodplugins/automem@8ff266e
Questions
None.
Unverified
:::tiprecommending header auth "when the Claude.ai interface supports it" already hedges this.Follow-ups
Below the severity bar for this PR:
/mcpas methodPOST. It is registered withapp.all('/mcp', …), soGETandDELETEalso reach it (per the Streamable HTTP spec).POSTis the correct usage to document; the table is just narrower than the route.InMemoryEventStoreclass itself is dead code inmcp-sse-server/server.js. Worth an issue onverygoodplugins/automem— either wire it into the/mcptransport (making this page's original claim true) or delete it. I did not open one, since choosing between those is a maintainer call.Generated by Claude Code as part of the recurring automem-docs-review routine.
Generated by Claude Code