Skip to content

D1044 — A live instance shows this machine's real client, and the graph's drift slows instead of resting

Decision. make dev DATA=<dir> has this machine's installed client report to the live instance: cartographer sync --report-to <url> sends the usage and client-settings reports of D326 and D818 to that endpoint, and does nothing else. It reads the config without saving it, provisions nothing and does not contact the configured server. In the Atlas, the live drift no longer rests when a tick costs more than DRIFT_TICK_BUDGET_MS (D889). It runs at half rate instead (DRIFT_SLOW_EVERY), and rests only past DRIFT_REST_MS, 12 ms, a tick that is a visible hitch even at half rate (about 5,000 concepts on an Apple M5). While the panorama turns with nobody at the controls, the camera eases very slowly onto the fit, so hours of drift never carry the network off screen.

Why. A live session on copies of real KBs showed the test fleet's invented client on the Settings page, and no usage on the Artifacts cards: the bugs that only real data shows (long paths, many workspaces, listed but never invoked skills) could only be seen on the production instance. On those KBs (800 to 900 concepts and 4,000 links) a tick sits right on the 4 ms line, so the network breathed or froze depending on the moment. That read as a bug, and the reader asked for the motion always on. A half-rate drift costs half the CPU of a full-rate one and still breathes. The 12 ms cap keeps D889's reason for the largest graphs.

Alternatives rejected. - Point the installed client at the live instance (connect to its URL). It rewrites the real configuration and provisions from the copies, and a forgotten switch back leaves the machine on a throwaway server. - Have dev.sh build the report itself from .cartographer.yaml. It would duplicate the client's report code, and the usage scan needs the lockfile and the transcripts, which only the client reads. - Keep the 4 ms rest (D889 unchanged). It is the behaviour the reader asked to remove. - Run the drift at full rate on every graph. At 2,000 concepts a 7.5 ms tick every frame takes half a 60 Hz frame from the rest of the page.

Consequences. --report-to sends the configured token with the reports, so it takes only a server on this machine (a loopback host): a typo cannot hand the real token to another host. make dev without DATA still posts the test fleet's invented client. The idle refit moves the camera only while the panorama turns, so a reader's own framing holds until they leave the controls for IDLE_RESUME_MS.