docs(projects/runelite-mcp): refresh roadmap

Record completed semantic-area and POH work, correct dynamic tool counts, and classify exporter-review gaps into native follow-ups, investigations, and deliberate exclusions.

Assisted-by: pi (openai-codex/gpt-5.6-sol)
This commit is contained in:
Gabriel Fontes
2026-07-25 11:58:23 -03:00
parent 2ac9db1225
commit 29653446c0
+41 -4
View File
@@ -22,6 +22,8 @@
sampling tick.
- Session/player identity, location, movement, animation, interaction target,
combat level, hitpoints, prayer points, run energy, and special attack are live.
- Location semantics reuse RuneLite's region catalogue, including template-region
resolution for instanced content; unmatched areas fail closed to null.
- Provisional interfaces were replaced rather than aliased.
- Automated fixtures cover every RuneLite game state and stale-data transitions.
- Pi verified active play, movement, world-hop `HOPPING`/`LOADING`, transient
@@ -72,19 +74,25 @@
## M2 — progression and account state (complete)
- Native tools expose quests, diaries, combat achievements, Slayer, Grand Exchange,
observed bank/auxiliary containers, rune-pouch contents, and wealth estimates.
observed bank/auxiliary containers, rune-pouch contents, wealth estimates, and
recognized features from the currently loaded player-owned house.
- All gameplay account state is ordinary product data with no privacy gate;
social/identity data remains omitted.
- Search/pagination APIs replace context-sized dumps. In-memory container caches
carry source tick/time, survive same-player hops, and clear at account boundaries.
- Collection-log totals and recent entries are available as an explicit summary;
detailed entries fail closed because RuneLite has no stable complete native model.
- POH ownership is accepted only from direct owner controls or bounded self-entry
actions (spell, unredirected tablet, or portal Home). Confirmed self-house state
is refreshed from object events and retained in memory across scene changes;
guest/unknown houses are never retained.
- Runtime mapping checks, closed schemas, page limits, price-age declarations, and
rate-limited client-thread timing warnings bound failure and cost.
- Pi verified quest filtering/totals, all diaries, Slayer assignment/rewards,
combat-achievement mappings and paging, GE, six-slot rune pouch, bank capture and
search across 748 stacks, convergent wealth, item prices, cache freshness, and
honest unloaded/partial states against the packaged plugin.
search across 748 stacks, convergent wealth, item prices, cache freshness,
instanced POH detection, three ownership signals, automatic self-house retention,
and honest unloaded/partial states against the packaged plugin.
- Gradle checks and the reproducible Nix package build pass.
## M3 — knowledge services (complete)
@@ -97,11 +105,40 @@
no account or gameplay state is attached.
- Fixed upstream, attribution, descriptive User-Agent, timeouts, one-MiB body cap,
one-request-per-second limit, and a 64-entry ten-minute memory cache bound I/O.
- Pi verified dynamic 14/16-tool discovery, search and page calls through MCP,
- Pi verified dynamic 15/17-tool discovery, search and page calls through MCP,
bounded text truncation, source attribution, and repeat-call cache hits; direct
upstream fixtures confirmed both MediaWiki query templates.
- Gradle checks and the reproducible Nix package build pass.
## Candidate follow-ups
### Small native additions
- Add player weight and special-attack enabled state to focused live context.
- Emit Grand Exchange offer-change events from RuneLite's native event.
- Add priced-stack/metadata progress to wealth output so a warming estimate cannot
be mistaken for a stable total even when `partial` is overlooked.
### Investigation required
- Evaluate native Hunter Rumour state and boss/activity kill counts without Hiscore
identity leakage or cross-plugin coupling.
- Evaluate detailed diary tasks and progression events for quests, diaries, combat
achievements, and Slayer using bounded varbit reconciliation rather than broad
per-tick scans.
- Evaluate structured Wiki table extraction under the existing outbound disclosure,
body, timing, and response-size bounds.
- Keep complete Collection Log detail blocked unless RuneLite gains a stable native
model; recent-only output must remain explicit.
### Deliberate exclusions
- Do not read RuneLite Notes or other private user-authored text.
- Do not introspect Bank Tags, Inventory Setups, combat-session trackers, or other
plugins. Their state is plugin-private rather than native account data.
- Do not persist gameplay/event history across RuneLite restarts without a separate
lifecycle, retention, and privacy design.
## M4 — release hardening
- Full state-transition, performance, privacy, and malformed-input matrix.