Repository navigation
StatLine v4.0.0rc4 #9
amillolive
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Changelog
[4.0.0rc4] - 2026-09-01
Release Summary
StatLine 4.0.0rc4 is a CLI, StatLine OS, connectivity, and release-surface polish release candidate over rc3. It does not change the core scoring engine or the existing current EBA/Elevate302 adapter formulas. The rc3 hot-path, selective-profile, lean-output, pooled-client, and SLAPI concurrency improvements remain intact. Instead, rc4 makes the command surface substantially more coherent, makes StatLine OS execute that same command surface in-process, separates SLAPI reachability from authentication state, moves advanced pipeline utilities out of root help, updates StatPack execution/Windows association behavior, migrates the client dependency from
httpxtohttpx2, and adds an unreleased URRL workspace adapter/dataset/StatPack source.The normal discoverable adapter set remains
e302.players,eba.players, andeba.teams. The newurrl.playersschema lives underschemas/workspace/, so it is packaged as development/integration material rather than promoted into normal adapter discovery.Added
statline toolsnamespace for advanced/internal pipeline utilities:statline tools map ...statline tools calc ...statline tools cache ...statline tools storage ...statline tools weights ...statline systemnamespace for runtime/backend/auth/path status.statline statpack run <pack.statpack>as the canonical StatPack execution command.statlineitself instead of maintaining a separate scoring command language.statline ...statline.exe ...statline.cmd ...python -m statline ...statline>OS promptPS C:\repo> statline ...autoas a first-class StatLine OS mode alongsidelocalandremote.schemas/workspace/urrl.players.yamlURRL/S20/RB/FINAL.csvurrl.playersStatPack source understatline/public/statpacks/unpacked/.servepreflight behavior, StatLine OS command passthrough, copied-shell command parsing, OS mode state, and installer StrictMode expectations.Changed
4.0.0rc3to4.0.0rc4.statline sys ...to the canonicalstatline system ...spelling. The rc3sysspelling remains a hidden compatibility alias.map,calc,cache,storage, andweightsgroups into hidden compatibility aliases; their canonical rc4 location is understatline tools.statline runStatPack command into a hidden compatibility alias; the canonical rc4 command isstatline statpack run.adaptersandinteractivecommands to hidden compatibility commands so they no longer crowd root help..statpackregistration to launch:statline statpack run --pause "%1"instead of:
statline run --pause "%1".remotetoauto.helprenders canonical root CLI help,help <command>renders that command's CLI help,statusdelegates tostatline system status,mode auto|local|remotechanges the inherited CLI mode and rechecks startup state.--mode localmessaging from an “offline” claim to an explicit execution choice: local core is being used and SLAPI is disabled.statline serveand StatLine OS startup handling so they do not emit an unrelated client-side SLAPI connectivity preflight verdict before launching their own service/session behavior.statline system statusoutput to reportbackend,slapi, andauthstates instead of the older ambiguousreachable/onlinepair.httpx>=0.27,<1.0tohttpx2>=2.0,<3.0, with CLI and StatLine OS imports updated accordingly.httpx.*missing-import handling tohttpx2.*.eba_playerstourrl.players. The currenteba.playersadapter YAML itself is unchanged.Fixed / Improved
servestartup presentation so launching a local SLAPI server does not first report the state of a separate client connection.tools.statlineexecutable prefix or common prompt text..statpackshell integration so the registered Windows command points at the canonical rc4 StatPack command path.4.0.0rc4..Countis safe. The uploaded source distribution does not includescripts/build-statline-installer.ps1, so that implementation cannot be independently verified from this tarball alone.Compatibility / Breaking Changes
eba.players,eba.teams, ande302.playerscurrent-schema files are byte-identical between the uploaded rc3 and rc4 distributions.urrl.playersintegration is not a normal discoverable adapter yet. It is packaged underschemas/workspace/; normal adapter discovery still returnse302.players,eba.players, andeba.teams.statline sys, rootmap/calc/cache/storage/weights, or rootstatline runshould continue to execute, while new documentation usessystem,tools, andstatpack run.use,load,profile,profiles,dataset, and related session-specific scoring flow) has been replaced by the canonical StatLine CLI command tree. OS users should issue the same commands they would use at a regularstatlineprompt.automode rather thanremote.httpxtohttpx2. Environments or tooling that directly import/patch StatLine's previoushttpxclient boundary may need to update.statline/public/statpacks/unpacked/eba_players/source tree was removed. Consumers depending on that package-internal path must migrate; the actual currenteba.playersadapter remains present and unchanged..statpackregistration now targetsstatline statpack run --pause. Existing manual shell integrations that hard-codestatline runstill work through the hidden compatibility alias in rc4.Known RC4 Issues
tests/test_architecture.py::test_installer_strict_mode_keeps_inno_candidates_as_a_collectionreadsscripts/build-statline-installer.ps1, while that installer script is not included in the uploaded sdist. With the rc4 HTTP-client dependency boundary satisfied, this produces 115 passing tests and 1 failure from the extracted source archive.statline.app.sessionifhttpx2is not installed; normal package installation declareshttpx2>=2.0,<3.0.statline oslauncher remains Windows-specific; on other platforms StatLine falls back to running the OS client inline.[4.0.0rc3] - 2026-08-31
Release Summary
StatLine 4.0.0rc3 is a performance, concurrency, and application-surface release candidate over rc2. It does not change the bundled EBA/Elevate302 adapter YAML, packaged datasets, or their scoring formulas. Instead, rc3 reduces work inside the adapter/scoring hot paths, adds selective score-profile execution and lean output construction, introduces the persistent StatLine OS client, improves HTTP connection reuse and SLAPI concurrency, tightens current-vs-deprecated adapter discovery, and closes the remaining rc2 StatPack/versioning issues.
The default scoring API remains compatible for callers that do not opt into the new profile/output controls: when no profile selection is supplied, StatLine still calculates every adapter-defined score profile and preserves the primary
priresult.Added
statline oslaunches the Textual REPL/shell/TUI client.statline os --inlineruns it in the current terminal.statline launchentry point remains as a hidden compatibility alias.python -m statline.app.tuican launch the TUI directly.statline.app.session.StatLineSession, providing reusable in-process state for:osinstall extra:pip install "statline[os]"installs the persistent Textual application surface without requiring the full remote/extras stack.profiles=[...]across the public Python scoring API and the SLAPI v4/v4/scorerequest model.CompiledAdapter, allowing adapters to declare exactly which aggregate operations and headers their expressions need.statline serve --workers Nstatline serve --keep-alive SECONDSSLAPI_WORKERSSLAPI_KEEP_ALIVEServer-Timingresponse headers exposing end-to-end application processing time for gateway requests.statline._version, so extracted/uninstalled source trees report4.0.0rc3rather than0+unknown.Changed
4.0.0rc2to4.0.0rc3.scoreexecution to request a lean scoring payload when--detailsis not used, while preserving the existing table/export fields.httpx.AsyncClientfor the lifetime of the session./v4/scoreroute to run synchronous dataset I/O and CPU scoring through Starlette's thread pool rather than on the async event loop.schemas/deprecated/is excluded from normal registry discovery, CLI/API adapter lists, and sniffing.richinto a base dependency because the base CLI uses Rich presentation directly; Textual is isolated behind the newosextra while remaining included byextras/devpack.Fixed / Improved
metadata.versionrather than the StatLine package version.StatLine v0+unknownwhen distribution metadata is absent.statline --versionso it reportsCLI UX r1, StatLine v4.0.0rc3instead of the rc2CLI UX vr1formatting error.StatLine UXpresentation path.Compatibility / Breaking Changes
profilesis omitted (orallis requested), every adapter-defined score profile is still calculated;priremains the primary compatibility field..yaml/.ymlpath.statline servemay now start multiple Uvicorn worker processes by default rather than exactly one. Use--workers 1/SLAPI_WORKERS=1when single-process behavior is required; reload mode requires one worker.osextra (and remains in larger extras/dev installs).Known RC3 Issues
0+unknownfallback,CLI UX vr1version text, and stale TUI presentation path are all resolved.statline oslauncher is Windows-specific; on other platforms StatLine falls back to running the OS client inline.[4.0.0rc2] - 2026-08-30
Release Summary
StatLine 4.0.0rc2 is a focused release-candidate polish update over rc1. It does not change the scoring engine, bundled adapter formulas, dataset aggregate behavior, StatPack implementation, or the SLAPI v4 scoring surface. Instead, rc2 aligns release metadata terminology, separates the CLI UX revision from the StatLine package version in the command banner, resolves strict-Pyright typing noise in the aggregate tests, and performs a substantial README/HOWTO cleanup for the v4 release candidate.
Added
CLI UX r1, StatLine v4.0.0rc2 — Adapter-Driven Scoring Frameworkwhen installed package metadata is available.Changed
4.0.0rc1to4.0.0rc2.statline/RELEASEfromGENERATION=4toVERSION=4.ReleaseInfo.generationtoReleaseInfo.versionand updated the release loader accordingly.1.StatLine UXtoCLI UX.rN, currentlyr1, and separated it from the StatLine package version in the main banner.StatLine UXtoCLI UX.v3.0.1text tov4.0.0rc2.statline/core/datasets/data/stats/...tostatline/core/datasets/..../v3/healthto/v4/health.Fixed / Improved
tests/test_dataset_aggregates.pyby routing float comparisons through a typed_approx()wrapper aroundpytest.approx.Compatibility / Breaking Changes
statline._release.ReleaseInfo.generationor parsingGENERATION=fromstatline/RELEASEmust useReleaseInfo.version/VERSION=in rc2.CLI UXrather thanStatLine UX; scripts asserting literal banner text may need to update.Known RC2 Issues
test_manifest_render_unpack_and_run_round_trip: StatPack-rendered adapter headers use the StatLine package version/fallback while the test expects the adapter'smetadata.version.StatLine v0+unknown; an installed distribution is expected to resolve the package version from distribution metadata.statline --versioncurrently printsCLI UX vr1because the eager version callback prependsvto the already revision-prefixedr1CLI version.StatLine UXpresentation name.[4.0.0rc1] - 2026-08-30
Release Summary
StatLine 4.0.0rc1 is a major architectural rebase of StatLine 3.0.0. It reorganizes the runtime into explicit
core,gateway, andapplayers, introduces portable StatPacks, replaces the SLAPI v3 HTTP surface with a consolidated v4 API, adds dataset-aware adapter expressions, and formalizes independent release metadata for the core, gateway, and application layers.The high-level local Python API and most CLI workflows remain recognizable, but this release intentionally removes compatibility shims for the old package/module layout and direct SLAPI v3 endpoints. Applications importing internal v3 modules or calling v3 HTTP routes will require migration.
Added
Added package version
4.0.0rc1.Added generation/layer release metadata through:
statline/RELEASEstatline._release.ReleaseInfostatline._release.RELEASEcore,gateway, andapprelease counters.Added generation 4 release values:
4111Added
ARCHITECTURE.mddocumenting the StatLine rebase architecture and module-ownership rules.Added explicit runtime layers:
statline.corefor adapters, datasets, scoring, StatPacks, types, and shared tools.statline.gatewayfor HTTP, authentication, adapter discovery, and persistence.statline.appfor CLI, server runner, TUI, and developer tooling.Added
python -m statlinesupport throughstatline.__main__.Added a populated
statline.sdkas a stable SDK surface exposing:score(),run_statpack().Added the StatPack package format for portable scoring packages.
Added StatPack lifecycle APIs for:
Added the
statline statpackCLI group with:manifestpackrenderunpackinspectregisterunregisterAdded top-level
statline run <pack.statpack>support for running trusted StatPacks.Added StatPack runner output support for:
Added StatPack dataset embedding when
metadata.datasetreferences a bundled dataset.Added split StatPack schema sections such as:
dimensionssnifffiltersbucketsmetricsefficiencyweightspenaltiesscore_profilesAdded a bundled unpacked
eba_playersStatPack source understatline/public/statpacks/.Added
.statpackfile-type metadata with:Added safe StatPack extraction checks that reject:
Added secret isolation for StatPack subprocesses. API keys and secret-like environment variables are removed by default unless explicitly allowed with
--inherit-secrets.Added dataset aggregate functions to the adapter expression language:
dataset_max("HEADER")dataset_min("HEADER")dataset_mean("HEADER")dataset_median("HEADER")dataset_sum("HEADER")dataset_count("HEADER")Added case-insensitive dataset aggregate lookup across arbitrary raw input headers.
Added shared batch-level dataset context so aggregate values are computed once and reused while mapping every row.
Added one-row aggregate behavior so single-row scoring treats the submitted row as a one-row dataset.
Added adapter/dataset matching helpers for:
Added a process-wide adapter registry with:
Added canonical dotted adapter identifiers and separator normalization.
Added separate adapter schema directories:
schemas/current/schemas/deprecated/Added current v4 adapters:
eba.playerseba.teamse302.playersAdded bundled datasets:
EBA_Elevate302/e302.s1.players.csvEBA_Elevate302/eba_players_gp3_plus.csvEBA_Elevate302/statline-players(1).csvAdded SLAPI/Gateway v4 endpoints for:
Added a single
/v4/scorerequest model that can score exactly one of:rowrowsdatasetAdded
input_kind=raw|mapped,caps_mode=batch|row,include_mapped, and dataset scoring limits to the v4 score API.Added v4 authentication, moderation, and administration routes under:
/v4/auth/v4/moderation/v4/adminAdded structural architecture tests enforcing the new package layout and module-ownership conventions.
Added dataset aggregate tests.
Added end-to-end StatPack lifecycle tests.
Expanded public API tests for current/deprecated adapter registration and v4 scoring behavior.
Changed
Changed package metadata from
3.0.0to4.0.0rc1.Changed
statline.__version__from a hard-coded package constant toimportlib.metadata.version("statline"), with0+unknownas the source-tree fallback when distribution metadata is unavailable.Reworked the package architecture around the new
core,gateway, andapplayer boundaries.Changed
statline/cli.pyinto a small command-line façade, with the main CLI implementation moved tostatline/app/cli/main.py.Changed the
slapiconsole entry point fromstatline.slapi.__main__:maintostatline.app.runner.main:main.Moved the FastAPI application into
statline.gateway.http.Moved the server runner into
statline.app.runner.Moved the TUI into
statline.app.tui.Moved logging/path helpers into
statline.core.tools.Moved timing types into
statline.core.types.Split flat scoring modules into:
statline.core.scoring.mapstatline.core.scoring.normalizestatline.core.scoring.scorestatline.core.scoring.weightsSplit dataset functionality into:
statline.core.datasets.loadstatline.core.datasets.resolveReworked adapter types into
statline.core.types.adapters.Reworked adapter loading into dedicated load, path, validation, matching, compilation, and registry modules.
Changed current adapter identity metadata toward the required
metadatablock containing:idtitleversionauthorChanged current adapter IDs to lowercase dotted identifiers such as
eba.playersandeba.teams.Changed adapter name lookup so dots, underscores, hyphens, whitespace, and slashes normalize to a common lookup representation.
Kept legacy top-level adapter metadata readable for deprecated adapters by converting it into the new metadata structure during loading.
Moved
demo,example, andvalorantadapters intoschemas/deprecated/while keeping them discoverable.Reworked
eba_playersinto the canonicaleba.playersv4 adapter.Added a second
e302.playersidentity targeting the EBA/Elevate302 player data.Expanded the EBA player adapter from 15 direct metrics and 18 efficiency metrics to 23 direct metrics and 20 efficiency metrics.
Added EBA player scoreability/reliability metrics including:
real_gpreal_gp1no_realrel_gpstat_totalstat_activescoreableno_scoregp_shareAdded EBA player
scoring_gravityandgpbuckets.Changed EBA player relative-GP calculation to use the submitted dataset's maximum
GPthroughdataset_max("GP").Added schema-driven EBA player filters for:
Revised EBA player clamps, scoreability behavior, efficiency calculations, bucket weights, and scoring signals.
Reworked
eba_teamsinto canonicaleba.teamsversion4.0.0.Changed EBA team bucket names from the old offense/defense shorthand to explicit
offenseanddefensebuckets.Added an EBA team
formbucket.Changed team streak scoring to participate directly in recent-form weighting.
Revised EBA team PRI, standings, and predictive weight distributions to account for the form bucket.
Changed packaged dataset storage from
statline/data/stats/tostatline/core/datasets/.Expanded the packaged dataset registry from six CSV files in 3.0.0 to nine CSV files in 4.0.0rc1.
Changed dataset discovery to use a canonical packaged root with safe path resolution and ambiguity detection.
Changed
map_batch()so all rows share one precomputed dataset aggregate context.Changed batch raw scoring so raw filters execute before aggregate context/mapping and mapped metric filters execute after mapping but before score-context calculation.
Changed public custom-adapter resolution to require
map_raw; the oldermap_raw_to_metricsfallback is no longer accepted bystatline.public.Reworked the SLAPI HTTP API from many specialized v3 scoring routes into the consolidated v4 resource model.
Replaced separate v3 adapter metadata endpoints with one
/v4/adapters/{adapter}document containing inputs, metrics, buckets, filters, dimensions, weights, penalties, and score profiles.Replaced the separate v3 map/calc/PRI/score HTTP operations with
/v4/score.Changed moderation routes from
/v3/mod/...to/v4/moderation/....Changed API-key HTTP naming toward
api-key/api-keys/api-key-requests.Added an internal CLI request-translation layer so existing CLI workflows can target the consolidated v4 remote API without retaining v3 server routes.
Changed dataset API responses to include structured dataset summaries and paginated row responses.
Changed health output to include the active adapter count.
Changed build configuration to package datasets from
statline/core/datasets/**/*.csv.Added
statline/RELEASEto wheel and source-distribution contents.Added
ARCHITECTURE.mdand typing stubs to source distributions.Removed the development upper bound on
pytest>=8.1.Changed the development
twinerequirement to>=7.0,<8.0.Fixed / Improved
games_played,gp, andgames.Removed
Removed the
statline.slapipackage namespace.Removed the old flat
statline.servicesnamespace.Removed the old flat
statline.utilsnamespace.Removed the old top-level
statline.tuinamespace; TUI functionality now lives understatline.app.tui.Removed the old
statline.datapackage layout.Removed the old top-level
statline.datasetsmodule.Removed the old flat core modules:
statline.core.calculatorstatline.core.normalizationstatline.core.scoringstatline.core.weightsRemoved the old
statline/core/adapters/defs/adapter location.Removed the old
statline/core/adapters/loader.pyandtypes.pylayout.Removed direct server exposure of the SLAPI v3 scoring and adapter-metadata API.
Removed separate server endpoints for:
/v3/map/row/v3/map/batch/v3/calc/pri/v3/calc/pri/batch/v3/pri/row/v3/pri/batch/v3/score/row/v3/score/batch/v3/adapter/{adapter}/...metadata resources.Removed compatibility shims for the old package namespaces as part of the rebase.
Removed the public-API fallback for custom adapters exposing only
map_raw_to_metrics.Removed the build expectation for
statline/slapi/storage/migrations/*.sql.Breaking Changes
statline.slapi,statline.services,statline.utils,statline.tui,statline.datasets, or the old flat core scoring modules must migrate to the newcore,gateway, orapppaths./v3/...to/v4/.... The v4 server does not retain the old scoring/metadata route surface./v4/scorewraps results with adapter/source/count metadata and supportsrow,rows, ordatasetinput rather than exposing separate score/map/calc routes./v4/adapters/{adapter}rather than the old individual weights, metrics, inputs, dimensions, filters, traits, and spec endpoints./v4/moderationand the new hyphenated API-key resource names.eba_playersandeba_teamsnow report canonical IDseba.playersandeba.teams. Legacy stems/aliases remain resolvable by the adapter registry, but code comparing returned adapter names literally may need updates.metadata.id,metadata.title,metadata.version, andmetadata.author.statline/data/stats/...tostatline/core/datasets/....map_raw.map_raw_to_metricsalone is no longer sufficient.statline.__version__now comes from installed distribution metadata rather than a hard-coded source constant.Known RC1 Issues
test_manifest_render_unpack_and_run_round_trip, where StatPack-rendered adapter headers use the StatLine package version while the test expects the adapter'smetadata.version.0+unknown.4.0.0rc1.statline/core/datasets/data/stats/...paths; the actual packaged dataset root isstatline/core/datasets/....# Version: 3.0.1text even though their adapter metadata reports version4.0.0.Find it on PyPI: https://pypi.org/project/statline/
This discussion was created from the release StatLine v4.0.0rc4.
All reactions