Skip to content

v2.1.1 — Loop Closing (Truthful Score Lands)

Choose a tag to compare

@Wolfe-Jam Wolfe-Jam released this 26 May 07:11
· 38 commits to main since this release

🛡️ The shield loop closes — truthful score lands for users

v2.1.0 shipped the single-source scoreFafYaml fix in ChampionshipToolHandler, but server.ts still wired the legacy FafToolHandler with the 40+30+15+14 pseudo-score. WJTTC AERO Phase 2 caught it. v2.1.1 closes the loop — faf_score now calls faf-cli's real, IANA-spec scorer directly.

Fixed

  • faf_score — now calls faf-cli's scoreFafYaml (IANA-spec scorer). Legacy file-presence pseudo-score retired on the live handler. Output reformatted: FAF SCORE: <n>/100 (<n>%) ● TIER + canonical Unicode tier glyphs + progress bar + populated/total slots + next-tier hint. Banned medal/colored-circle ladder dead on this surface too.
  • Graceful invalid-.faf handling0/100 (0%) ○ INVALID / ○ UNREADABLE / ♡ no .faf with diagnostics. No fake numbers, no crashes.
  • Node 18 ESM-from-CJS compat — dynamic-import bridge (temp workaround for faf-cli's broken bun exports condition).

Tests

  • WJTTC AERO Phase 2 — score-parity assertion tightened to TRUE parity: MCP faf_score numeric == faf-cli scoreFafYaml(...).score on the same YAML.
  • 341 pass / 1 todo / 0 fail / 1336 expects — CI green across ubuntu/macOS/windows + Node 18+20.

FAF defines. MD instructs. AI codes.