Repository navigation
Conversation
zmofei
force-pushed
the
feat/chatgpt-sidebar-app
branch
from
November 11, 2026 10:58
e963e07 to
9c9b9d5
Compare
zmofei
force-pushed
the
feat/chatgpt-thread-entrypoint
branch
from
November 13, 2026 11:21
8f395ae to
1f121f5
Compare
zmofei
force-pushed
the
feat/chatgpt-thread-entrypoint
branch
2 times, most recently
from
November 13, 2026 12:46
115f55e to
7da00fc
Compare
…l draw on it In ChatGPT, render_map_tool opens its map as a tab next to the chat that stays open: - A thread entrypoint opens an empty map. - The map shares its view and the selected place (a pin, a search result or a Standard base map label) as model context. - WebMCP tools (redraw_map, search_map, add_places, move_map, read_map) let the model change the open map instead of opening another. - The server instructions, tool description and results point the model at those tools.
zmofei
force-pushed
the
feat/chatgpt-thread-entrypoint
branch
from
November 13, 2026 13:00
7da00fc to
5634bda
Compare
…apAppHtml.ts mapAppHtml.ts had grown past 3,300 lines. The new map page code now lives in three files whose scripts renderMapAppHtml splices into the page's single <script>. The generated page's code is unchanged.
ChatGPT on the web offers document.modelContext but doesn't give the registered tools to the model, so a map that listed them in its context had the model explain that the tools it was told about weren't callable. The context no longer lists them, and the server texts say ChatGPT Desktop.
…ender_map_tool an icon On a phone, ChatGPT's title bar covered the map's zoom buttons and summary. The map now places its controls, labels and cards inside hostContext.safeAreaInsets, while the map itself runs underneath, and inline it asks for no more than containerDimensions.maxHeight. A square Mapbox mark icon replaces the wide server logo in ChatGPT's "+" menu.
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.
In ChatGPT,
render_map_toolopens its map as a tab next to the chat, where it stays open and works with the conversation. Hosts without the OpenAI MCP Extensions ignore the new metadata.render_map_toolis a thread entrypoint. "+" → "More tools" → Mapbox Map opens an empty map.ui/update-model-context, and the selected place as a titled item in the composer, so "what's around here?" and "what is this?" work. A place can be a pin, a search result, or a label of the Standard base map: points of interest, place names, landmark icons and indoor labels. A selected label is highlighted; a second click deselects it.redraw_map,search_map,add_places,move_mapandread_map, so follow-ups draw on the open map instead of opening another.redraw_maptakesrender_map_tool's arguments.render_map_tooldescription, the render hint and the map's shared context name these tools, each saying it applies in ChatGPT, so other clients aren't sent looking for tools they don't have. In ChatGPT, the result of a call that opens a map names them too.Verified in ChatGPT Desktop with a local dev server: the map opens next to the chat and from the thread tab bar; the model answers from the shared view; in Codex, follow-ups change the open map; clicking base map labels selects, switches and deselects them, and the selection stays after a message is sent. With the tools named directly (no
read_mapcall first), "show coffee shops on it" drew on the open map throughsearch_map, without a secondrender_map_toolcall. Unit tests, typecheck and lint pass.Known limits: