You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(discourse): handle modern Discourse API response shapes
Three Discourse-specific fixes prompted by a 1.0.0 user report:
1. tags shape drift (Discourse PR #36678, merged 2026-02-02 in
topic_tags_mixin.rb): the `tags` field globally flipped from
list[str] to list[{id, name, slug}] across all topic-bearing
serializers. The "expected str instance, dict found" crash from
", ".join(tags) is fixed by extracting `name` per item, and we
accept both shapes for older instances.
2. search title was always wrong (latent since day one):
SearchPostSerializer has never emitted topic_title — we silently
fell back to post.get('name'), which is the user's display name,
so search results were headlined with the poster's name instead
of the topic title. Look up the title from the parallel topics[]
array via topic_id (the topic_map already exists for this).
3. mega-topic detection: topics with >=10000 posts omit
post_stream.stream and emit isMegaTopic+lastId instead. We
silently surfaced only the first 20 posts. Detect the flag and
prepend a clear truncation note so callers know the rest is
unavailable via the topic endpoint.
Also drop a dead read of topics[].views in search formatting —
SearchTopicListItemSerializer never emits this field, so it was
always None and silently hidden by the if-guard.
Tests: rebuild SAMPLE_SEARCH_RESPONSE to mirror Discourse's actual
shape (no topic_title on posts, no views on topics, name field is
the user display name). Add four regressions: tags as legacy
strings, tags as modern dicts, missing tags, mega-topic note,
title-from-topics-array, and unknown-topic-id fallback. 850 pass,
ty clean.
Bump to 1.0.1.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: manifest.json
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
"manifest_version": "0.4",
3
3
"name": "parkour-mcp",
4
4
"display_name": "Parkour",
5
-
"version": "1.0.0",
5
+
"version": "1.0.1",
6
6
"description": "A content exploration toolkit that helps LLMs surface high signal, unsummarized web content.",
7
7
"long_description": "MCP server providing a content exploration and research synthesis pipeline. Uses clean first-party APIs to surface and explore web content without summarization. Integrates Kagi, Semantic Scholar, arXiv, deps.dev, IETF, GitHub, MediaWiki, Reddit, Discourse, and DOI resolution APIs into a unified tool suite.\n\n**Note:** The web_fetch_js tool (for JavaScript-rendered pages) requires a one-time browser install. Run `playwright install webkit` from any terminal. The other 11 tools work without this step.",
0 commit comments