SPB Git

spb/ai-atlas

Public
History of docs Clear filter
page 1
  1. Sat, Sep 12, 2026 7

    1. API 1.1 follow-ups: per-database cache namespace (frontier×price fix), pulse/index items, provider deployments, best_price, matrix/pareto fields
      …
      Root cause of the null cheapest_frontier: the Redis API cache was not scoped to the database, so the dev API (:8331) and the
      production-copy API (:8332), which share redis db 5, served each other's cached bodies and the cached frontier id set —
      prod joined dev ids against its prices (0 rows) while `sample.frontier_offers` came from a body cached by the other process.
      Cache keys are now `aia:api:<sha1(DATABASE_URL)[:8]>:…` and the frontier id set is re-validated against live canonical models
      on every cache hit. Regression test asserts cheapest_frontier / sort=cheapest_frontier / price_frontier are non-null whenever
      frontier offers exist.
      
      Also: PRICE_CHANGED old/new values are {input,output} dicts → price_delta() (pulse median_percent, pulse/index/frontier items
      with % and provider); /prices/index 30-day counters → {count, items[], definition}; /providers/{slug} deployments + removed
      (90 d); /deployments status=active|delisted|all (current=0 ⇒ all); framework/library kind (normalised) + dataset summary
      attributes + license_key derived on read; /open new_30d by release_date (first_seen_at only when unknown); /models best_price
      (one lateral join); /families benchmark_best with scores (list + members); /benchmarks/matrix since/until on release_date and
      observed_at/evaluated_at per cell; /pareto points carry context_length, parameter_count, release_date. docs/API.md updated.
      
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +13 −10
    2. docs: canonical upgrade rollout procedure (migrate 0003, seed, canonicalize dry-run/apply)
      …
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +12
    3. API 1.1 (Stream C): canonical model universe, comparability-grouped leaderboards, deployments & cost, intelligence surfaces, admin workbenches
      …
      Existing routes (additive, v1 shapes kept): /models canonical universe + include=artifacts, family_id join, canonical licence
      matching, families/licenses/trust facets, /models/{slug} accepts artifacts and reports redirected_from; EntityDetail adds family,
      artifacts, deployments, identity, licence, openness, version_history, grouped benchmarks and runs in <= 4 connection groups; /stats
      adds organizations_total, artifacts, model_families, change_events_live_24h and counter definitions; /changes, /changes/daily
      ("Today in AI 2.0" with group_key folding), /timeline, entity timelines and /diff default to is_backfill=false on occurred_at
      (include_backfill, date_field restore v1); /benchmarks exposes family/variant/metric/direction/groups/trust_mix and resolves aliases;
      /compare groups benchmark dimensions by (benchmark, metric, config_key) with comparability, diff_only and mode; /prices adds
      family/org/modality filters and sort=cheapest_frontier; /prices/index becomes the AI Price Index; /providers adds distributions,
      30-day churn, organizations_covered, features_supported; /search compiler v2 (compiled/sort/residual/unrecognised, org verified
      against aliases, guarded casts, FTS fallback when pgvector is absent); /methodology, /trending?kind=.
      
      New routes: /benchmarks/{slug}/leaderboard, /benchmarks/{slug}/frontier, /benchmarks/matrix, /models/{a}/diff/{b}, /deployments,
      /cost, /cost/context, /frontier, /pareto, /pulse, /open, /find-a-model, /run-locally, /hardware/{slug}/fit, /families,
      /families/{slug}, /graph/explore, /time-machine, /claims/{id}, /entities/{slug}/claims, /entities/{slug}/provenance/{property},
      /licenses, /licenses/{key}; admin: /admin/quality, /admin/entity-resolution (GET + POST decisions via merge_entities mode= when
      available), /admin/anomalies, /admin/extractions/{snapshot_id}, /admin/quarantine (501 until services.canonical ships),
      /admin/audit, /admin/runs/{run_id}/rollback, /admin/cache/flush?after_run=1.
      
      Services: frontier.py (comparability groups, one-row-per-model leaderboards, frontier model set, leader_at), finder.py, pareto.py,
      cost.py, hardware_fit.py (architecture-aware KV cache, observed artifact sizes, multi-GPU), search.py v2, stats.py definitions.
      
      Security/perf: rate_limit("admin") before require_admin, failed-auth limiter 10/min/IP, x-forwarded-for only with AIA_TRUST_PROXY,
      set_limit GUC leak removed, weak ETag + Cache-Control + 304 on public GETs, admin audit log on every admin call. EXPLAIN ANALYZE on the
      production copy: every read path < 20 ms, no index migration needed.
      
      Docs: docs/API.md rewritten as the 1.1 contract (changelog, 1.1 additions, semantics changes, deprecations: none).
      Tests: tests/test_api_v11.py (contract) and tests/test_api_services.py (pareto, cost, compiler, hardware fit); 44 API tests pass.
      
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +175 −105
    4. Web foundation (D0): atlas-plate brand, terminal shell, command palette, evidence drawer, density, charts, watchlist, homepage 3.0
      …
      Brand: new "atlas plate" mark (grid plate, A-as-graph constellation, timeline "now" node) shared by logo.svg,
      lockups, favicon (simplified grid), apple/PWA icons, root OG wallpaper with live counters; theme-inverting
      --brand-* tokens. Shell: header nav Models · Frontier · Benchmarks · Prices · Research · Graph · Changes · More ▾
      (keyboard menu), mobile tab bar with grouped More sheet, footer with credits line, About page rewritten.
      Command palette: commands with fuzzy match, recents, type prefixes (m: b: o: p: h:), ">" mode, theme/density
      actions. Evidence drawer (right panel / bottom sheet) fed by /provenance → /history → inline fallback, wired
      into KeyValue (slug prop) and ProvenanceInline; SpecTable/Capabilities pass slug. Density toggle
      (comfortable | compact | dense) via CSS variables; pre-paint scripts moved to lib/prepaint.ts (server-safe —
      client-module string exports reached the server as stubs). Charts: InteractiveLineChart, StepChart,
      Sparkline trend, ScatterChart, Heatmap, TimelineLanes, lineLayout. Terminal primitives: TerminalLayout,
      FilterSheet, DataStrip, Ticker, SectionNav; Sheet + Hint UI. Local watchlist + WatchButton + /watchlist.
      Homepage 3.0: compact hero, live strip with definitions, ticker, editorial grid (today, frontier moves,
      leaders, price moves, open weights, research), release timeline lanes, graph teaser, signature products.
      QA: screens.mjs shell sweep 320–1920 + touch targets, SHELL_ONLY mode; shell.mjs flows. docs/FRONTEND.md §2 §4 §9.
      
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +122 −10
    5. Connectors + registry on the canonical ontology (Stream B): artifacts, effort variants as configurations, benchmark families, identity helper
      …
      Hugging Face: repositories are models or artifacts (quantization / conversion / packaging) with `canonical` → base model (base_model tag or
      analysed name, family org), `family` hints, canonical licence (+license_raw), `access: gated|open` instead of openness=restricted,
      weights_available + derived openness, modalities from pipeline tags, parameter_count kept on artifacts only; converters `publish`, never `develop`.
      Leaderboards: Artificial Analysis / LiveBench / aider / SWE-bench fold effort variants ("(xhigh)", "-thinking-64k-high-effort", non-reasoning)
      into the base model with the setting in config; LiveBench categories become `livebench-<category>` benchmarks; aider well-formed rate →
      `aider-polyglot-well-formed`; AA GPQA → gpqa-diamond, τ² → Telecom; trust_level / variant / run_group on every result; bookkeeping out of config;
      free-text tags are aliases, identifiers only for trusted pinned vendor ids. New shared `connectors/_identity.py` (provider prefixes, first-party
      patterns, effort stripping with size-tier guard, family hints).
      Registry: benchmarks gain family / variant / version / family_head / canonical metric / bounds / higher_is_better / harness / comparability_note +
      14 entries (gpqa-diamond, aime-2024, swe-bench-pro, arc-agi-2, terminal-bench-2, mmteb, livebench ×7, aider-polyglot-well-formed); seed writes them
      and `variant_of` relations, org_kind from `kind`. Organisations: kind + country fields, upstage / stepfun / kwaipilot / kuaishou / thinking-machines /
      lg-ai-research / xiaomi / inclusionai entries with hub aliases. Repositories: canonical kinds, agents (agent_kind) and tools get their own entity types.
      OpenRouter: prices booked on the OpenRouter provider only (features.upstream_provider), `created` → openrouter_listed_at (no release_date),
      canonical modalities, identity helper. Provider pricing: fireworks_model_id (+ legacy scheme), org from the id, family hints.
      Labs: no hard-coded Anthropic modalities/tool constants (table-driven), Google pdf → document + google_model_id, canonical licence/status/
      capabilities/api_aliases helpers in labs/_common.py, family_model hints everywhere. arXiv/OpenReview: researchers only with an identifier
      (ORCID / OpenReview profile). GitHub/PyPI: canonical kind (+kind_raw), licence keys. docs/CONNECTORS.md rewritten on the canonical vocabulary.
      
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +106 −21
    6. aia canonicalize: duplicates → variants → artifacts → families → licences → taxonomy → results → events → anomalies (dry-run by default, idempotent --apply); aia anomalies; aia quarantine list|release|discard
      …
      Every step plans from reads and reports counts + examples; --apply executes the plan through merge_entities / upsert_relation / a tier-2
      derived FactWriter. No deletes, snapshots untouched, a second --apply is a no-op. Optional entity scope for targeted runs and tests.
      docs/CANONICALIZATION.md documents every rule, what is never done, counting rules and how to re-run.
      
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +176
  2. Fri, Sep 11, 2026 5

    1. Simon-Pierre Boucher · 1 file +88 −22
    2. Simon-Pierre Boucher · 1 file +31
    3. Simon-Pierre Boucher · 1 file +54
    4. Simon-Pierre Boucher · 3 files +358
Menu

Theme