Skip to content

docs: bring the documentation level with what shipped this cycle - #826

Merged
hokiepokedad2 merged 5 commits into
developfrom
docs/post-521-audit
Aug 24, 2026
Merged

docs: bring the documentation level with what shipped this cycle#826
hokiepokedad2 merged 5 commits into
developfrom
docs/post-521-audit

Conversation

@hokiepokedad2

Copy link
Copy Markdown
Contributor

Nine pull requests merged today and none of it was documented. A release publishes :latest, which production auto-deploys, so whatever the docs claim at that moment is what self-hosters act on.

The correction that matters most: the version number was wrong everywhere

Every capability gate in the code compares against 5.2.0, not 5.2.1 — PoracleServerProfile.FirstWithV2Tracking, MuteCapabilityService.MinimumVersion and QuestPokecoinCapabilityService.MinimumVersion are all new Version(5, 2, 0).

5.2.1 is what production happens to run. It is not what the features need. The brand-new compatibility page said 5.2.1 in three table rows and framed the whole axis as "5.1.0 versus 5.2.1 and newer", so a self-hoster on exactly 5.2.0 was told four working features were unavailable. docs/configuration/site-settings.md already said 5.2.0 and was the only page that had it right.

That error originated in my own briefing and propagated into the docs before it was caught by reading the source.

Everything else that was stale

Counting. There are eleven tracking types now and the docs said ten in about a dozen places: the alarm table, the README and index feature lists, "eight of the ten" test alerts (really eight of eleven), "six of the nine" list templates carrying the scope chip (seven of eleven), three Poracle proxies (five), five rate-limit policies (six), five quest reward tabs (six). docs/architecture/database.md's "ten alarm tables" is correct and was left alone, with a note explaining eleven types across ten tables so a later sweep does not "fix" it.

Claims whose behaviour moved underneath them. poracleng-proxy.md explained why Pokemon edits cannot merge by describing a v1 code path Pokemon edits no longer take. poracleng-enhancement-requests.md said uid rotation affects "these two types"; Pokemon rotates now too. frontend.md claimed the test button appears on every alarm type including Fort Changes and Max Battles, which TestAlertController.ValidTypes has always contradicted.

docs/poracleng-v2-review.md was the worst: not in the navigation, asserting "PR #139 is OPEN — wire shapes are not yet frozen", recommending a config flag under the wrong name, and recommending reads-first-writes-later when the opposite shipped for a documented reason. Re-scoped as a dated historical record and added to the nav.

Added

A docs/features/quiet-periods.md page. Costume filters, PokéCoin rewards, Pokéstop Events, rule descriptions and repeating schedule rules documented where they belong. PORACLE_TRACKING_API_VERSION in the configuration reference — the only env var in the bridge that was undocumented. The v2 pilot, both error envelopes and the 409 unsupported contract in the proxy page. A troubleshooting entry for a control missing because the server is too old. A TESTING.md note that :beta now expects 5.2.0 for four features and degrades silently below it.

In-app help gained a Quiet Periods section and an Active Hours section, which had never existed despite the quest-summary section referring readers to one twice.

Screenshots

Authentication was solved by minting a token with username: Trainer and no avatarUrl, so the session is anonymous at source rather than patched afterwards. Branding, the custom nav link and the account's street address were removed before each capture, over the raw IP. Every image was read back and looked at.

Two images already in the repo were leaking. The committed dashboard.png and pokemon.png both carried the deployment's site title (PoGO Alerts Network) and a real Discord avatar. Both are replaced here.

⚠️ The remaining ~35 screenshots in the repo were not re-checked. Worth a sweep before the release.

⚠️ Judgement call for the reviewer: the new dashboard.png shows 18 real area names and a coverage map of the deployment's actual region. The address text is neutralised; the maps are not. That is not on the current anonymisation list, and it is strictly less exposure than the branding and avatar it replaces, but it is worth a decision.

Not captured: anything showing the costume filter. The dev PoracleNG's database is at schema_migrations version 5 and costume needs 6 and 7, so the field is correctly absent — the gate works, there is simply nothing to photograph until that database is migrated. Help-page screenshots were also skipped, since the deployed build predates today's help changes.

Verification

npx jest --ci — 116 suites, 1389 tests. All eleven locale files parse with HELP key order identical to en.json.

Defects found while doing this, fixed elsewhere or still open

  • Pokéstop Events was dead on arrival — fixed in fix(pokestop-events): register the service the controller needs #825.
  • Alarm cards render "Pokemon Raid alerts saving to wrong profile; location not profile-scoped #1" on a cold load of /pokemon, correcting only after navigating away and back. The list renders before MasterDataService is ready and does not re-render on it. Still open.
  • The sixth quest reward tab does not fit — the PokéCoins label clips to "Pok" even when selected. Still open.
  • The active-hours "Until (hour)" / "Until (minute)" labels are truncated. Still open.
  • quiet-surface-parity.spec.ts and CLAUDE.md both still carry the ten-versus-eleven arithmetic, including a line calling IPoracleMuteProxy "the only /api/v2 caller in the codebase" that the same file contradicts 300 lines later. Still open.

Locales

All eleven parse and carry the three new help keys in matching order. Six strings are deliberate English copies in nl, pl and pt, matching how every other section title already ships in those files. The new content blobs were machine-translated in the ten non-English locales; da, pl and sv would most benefit from a native reviewer.

Nine changes merged and none of them were documented. The pages a self-hoster
reads described ten alarm types, five quest reward tabs, no costume filter and
no way to quiet anything.

Corrected across the surface: eleven alarm types in every list that enumerates
them, test-alert coverage arithmetic in the three places that state it, the
scope chip on seven card types rather than six, five Poracle proxies rather
than three, the sixth rate-limit policy, and the claim that a Pokemon edit
keeps its rule id -- which stopped being true when edits moved to /api/v2.

Every version requirement said 5.2.1; every gate in the code says 5.2.0.
5.2.1 is what production runs, not what the features need, so a self-hoster on
exactly 5.2.0 was told four working features were unavailable. The
compatibility page now names the three constants it describes.

Added: a Quiet Periods page; costume filters, PokeCoin rewards, Pokestop
Events, rule descriptions and repeating schedule rules written up where they
belong, each with the version or migration it needs; the
PORACLE_TRACKING_API_VERSION entry in the configuration reference; a
troubleshooting entry for a control that is missing because the server is too
old; and a note in TESTING.md that the beta channel now expects 5.2.0 for four
features and degrades silently below it.

poracleng-v2-review.md is re-scoped as a dated historical record rather than
current advice, and added to the nav -- it was the only orphan.
…cle in-app

The in-app guide had no Quiet Periods section and, more oddly, no Active Hours
section at all -- the quest summary section referred readers to one twice.

Adds both, plus entries for costume filters, PokeCoin quest rewards, Pokestop
Event alarms and the rule description now rendered on alarm cards. The FAQ's
"why am I not getting alerts" list gains a quiet period as a cause, since that
one produces silence with no banner to spot, and gains an entry for controls
that only appear on a new enough Poracle server -- the likeliest reason
something the guide describes is not on screen.

Quiet Periods is a new accordion section, so help-sections.ts gains an entry;
everything else lives inside existing content blobs. All eleven locales carry
the three new keys in the same position, so key order still matches en.json.
The section title and subtitle are English in nl, pl and pt, matching how
every other section title already ships in those three.
Captured against a dev instance running this branch's build against a
PoracleNG 5.2.1 server.

Replaced because the UI in them no longer exists: the dashboard (which now
carries a Pokestop Events card), the Pokemon list (rule descriptions and the
quiet chip), the profiles page, the quest add dialog (six reward tabs) and the
server versions card (5.1.0 -> 5.2.1).

New: the Pokestop Events add dialog, the quiet sheet, the PokeCoins reward tab
and the active hours editor with a repeating rule.

Every shot was taken through the instance's IP rather than its hostname, with
a placeholder account name and the default silhouette avatar, and with the
site title, header logo, custom nav link and the account's street address
neutralised in the page before capture. The previous dashboard, Pokemon and
versions images carried the deployment's own branding and a real avatar; those
are gone with this change.
@hokiepokedad2 hokiepokedad2 added the documentation Improvements or additions to documentation label Aug 24, 2026
@github-actions github-actions Bot added the docs label Aug 24, 2026
@hokiepokedad2
hokiepokedad2 merged commit ad155d3 into develop Aug 24, 2026
6 checks passed
@hokiepokedad2
hokiepokedad2 deleted the docs/post-521-audit branch August 24, 2026 18:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant