Repository navigation
Operate the local GEO workflow through MCP and the shared dashboard - #23
Merged
Merged
Conversation
Smoothing back-filled each prompt's first observation to the start of the window, so a brand collected once drew a flat 30-day line, and the per-question chart extended dashed lines backward the same way. Smoothing now starts at the brand's first observed day (staggered prompts are still back-filled within that span), lines extend only forward, and a single observation is drawn as a dot.
With fewer than ten answers the overview, visibility bar and question badges drop the red/amber/green verdict and say how many answers the figure rests on. The overview content also starts at the top instead of being vertically centred.
Collection and monitoring sit side by side as cards, each saved action is its own card and agent-quoted run ids are shortened. Organisation pages list the brand dashboards so the sidebar always leads back, and the local dev server warms the dashboard modules so first visits do not wait on compilation.
The video replays current local screens of the 2026-10-22 results (23 links, BeatAPI absent, draft handoff, baseline) and says so beside the poster in every README. The case page and notes now point to it instead of saying no edited video exists.
Page and sidebar share one near-black ground, cards sit one step lighter with hairline borders, body text is 14px and page titles are larger and lighter. The header band shows faint request snippets like the BeatAPI hero instead of a single background image.
Wide screens list the last 7 days, 30 days and 3 months as tabs beside a menu for the other ranges, with model, tag and search filters on the right; phones keep the single menu.
Visibility and share of voice each become one card: the chart with its current figure on the left, and beside it the tracking figures or the brand and competitors ranked by share, with their site icons.
A breakdown bar gives each category's share of the period's citations, the top domains read as rank, domain, category, count and share, and categories use the same tinted label in every citation list.
Adds English narration, a music bed and effects, a 3D mark rendered in Blender from the brand geometry, and more motion around the same real screens and numbers.
The stacked areas ramped up out of zero-filled days before the first collection; the chart now starts at the first collected day and explains itself when there is only one.
Tooltips, relative times, change descriptions, platform groups and chart dates follow the EN / 中文 switch, and every settings page uses the Overview title.
erickkkyt
marked this pull request as ready for review
October 22, 2026 17:07
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.
Local Agents could read analytics and edit prompts, but could not complete the website-to-evidence workflow. This adds scoped local MCP controls for paused brand creation, website context, bounded one-shot browser collections, progress/cancellation/comparison, shared content/action commands and recurring monitoring. The dashboard and MCP reuse the same services, with durable idempotency receipts, draft revision checks and settings conflict checks. A bilingual local Real workflow case page walks users through the verified BeatAPI example, offers a downloadable summary and links to fixed-version acceptance evidence.
Collections pin question text and target configuration and do not enable ongoing monitoring. Existing mismatched BeatBrowser bridges are reported instead of replaced. The browser runner persists a receipt before acknowledging asynchronous submission; the worker polls that exact run without resubmitting, and control leases cover the answer timeout. This addresses the observed five-minute request failure during a longer consumer-ChatGPT answer. Includes an authenticated stdio proxy, manual monitoring/history controls, an additive workspace_commands migration and Agent documentation. Hosted deployments retain their existing tool group; credentials, publishing, billing and deletion are not exposed.
Validation: pnpm test:mvp passed 1,579 checks; eight workspace type tasks, pnpm lint and the web production build passed. The implementation head passed all three CI jobs. Official HTTP and stdio MCP handshakes exposed 27 tools. Integration scenarios that change the shared worker heartbeat run sequentially to avoid interference.
Real acceptance on beatapi.io: two fresh consumer-ChatGPT answers completed and were read back via MCP from PostgreSQL, with 13,838/14,318 answer characters and 23/25 visible citation links. Both took over eight minutes, validating the asynchronous path beyond the observed synchronous failure. Comparison matched one question/target/definition pair with no missing coverage; neither answer mentioned BeatAPI. MCP saved and reviewed a baseline-linked draft; dashboard edit/save/reload and MCP read-back confirmed revision 2 with review cleared. Stale writes were rejected. Desktop/mobile dashboard checks passed; manual enable/pause was read back over MCP.
Limits: these are two baseline samples without an intervening website change, not an improvement claim. Initial failed attempts remain failures. The server-side site check is unknown because local proxy DNS resolves to a reserved address; browser homepage reading succeeded and public-network checks remain enabled. Consumer account model/search mode was not pinned; citations cover visible answer links. The action remains planned, the draft needs review, and recurring monitoring is paused. No paid research API request, public content publication or production deployment was performed.
Detailed acceptance: docs/beat-geo/agent-workflow-acceptance-2026-10-22.md.
Case presentation: six selectable steps, English/Chinese copy and desktop/mobile navigation, clearly labeled as a recorded summary rather than a live run. The 23/25 citations and absent mentions are shown without an improvement claim. Retained local evidence is frozen with hashes; private account captures are not bundled. Includes a 3m30s storyboard and seven-page recording workbench with timer, chapter/keyboard navigation, fullscreen, local editing and export. No historical continuous recording exists; new filming is explicitly a reproduction.
Case validation: 581 web unit tests, web types/build/lint, signed-in case navigation and summary download at 1440/390px without page errors or collection writes, and 14 deck layout checks plus timer/chapter/keyboard/fullscreen/edit/export checks. The case page is local-only and scoped behind the existing organization login.