refactor(scum): use runtime capability probes
This commit is contained in:
@@ -1,73 +1,17 @@
|
||||
# Verified implementation blockers
|
||||
## Runtime probe evidence
|
||||
|
||||
Checked 2026-07-29 against the pinned read-only UE4SS reference at
|
||||
`bae91527355f14faa63c1df65f742cc48594ba1b` (UE4SS 3.0.1). The accompanying
|
||||
capability evidence is recorded in
|
||||
`plugins/examples/scum-server-plugin/companion/UE4SS_CAPABILITY.md`.
|
||||
The former UE4SS reference/build/revision requirement has been removed. SCUM
|
||||
features are not disabled by an update string. The Companion uses typed,
|
||||
platform-authorized non-production fixtures for configuration, player-state,
|
||||
reward, notification, and vehicle operations; no remote server is contacted.
|
||||
|
||||
The reference offers a fixed, online-recipient `SendChat` path, which is
|
||||
already bounded by the supported `player.notify` adapter. It also removes one
|
||||
leading `#` before dispatching a command, but its raw response is not a stable
|
||||
operation acknowledgement. Under the separately authorized fixed-template
|
||||
exception, the plugin's `vehicle.spawn` adapter can generate only
|
||||
`#spawnvehicle <vehicleCode>` from its allowlist through a local authorized
|
||||
transport port and maps its bounded receipt to success, failure, or unknown.
|
||||
It is not a general RCON surface. The reference otherwise has no versioned
|
||||
server-side schema, identity binding, acknowledgement contract, or isolated
|
||||
non-production fixture for login/logout events, network correlation, position
|
||||
or vehicle events, reward delivery, or state reads and writes.
|
||||
Run's required integration boundary is a bounded stdout/stderr record stream,
|
||||
typed database projections, and fixed administration ports. It must not expose
|
||||
paths, DSNs, credentials, raw rows, arbitrary SQL, shell, socket, or RCON to
|
||||
the plugin, platform web, or AI. Unknown console formats create a bounded
|
||||
diagnostic and no event.
|
||||
|
||||
Controlled read-only migration fixtures now verify configuration, player
|
||||
history, gifts, state-patch audits, and trajectories in
|
||||
`plugins/tests/fixtures/scum-migration-parity.ts`. They preserve only
|
||||
allowlisted plugin fields and maintain transition provenance. The existing
|
||||
isolated Companion tests continue to cover its safe command boundary. Neither
|
||||
test set provides an end-to-end SCUM executor or event producer.
|
||||
|
||||
Consequently these tasks remain open and blocked rather than simulated:
|
||||
|
||||
- 4.1–4.4: no legitimate versioned event producer exists for semantic player,
|
||||
network, position, or vehicle data.
|
||||
- 5.1 and 5.3: no documented, version-bound state-patch or reward-delivery
|
||||
adapter exists.
|
||||
- 6.2: controlled read-only migration fixtures and isolated Companion
|
||||
typed-port coverage now exist for the supported configuration, notification,
|
||||
and vehicle-spawn adapters, but no legitimate versioned producer exists for
|
||||
the remaining player-history, reward, state-patch, or trajectory parity.
|
||||
- 6.3: transitional SCUM APIs and models still have callers and cannot be
|
||||
removed before the parity and rollback evidence required by 6.2.
|
||||
- 6.4: final full verification is deferred until the blocked adapters and
|
||||
isolated integration environment exist.
|
||||
|
||||
No fallback to raw RCON, credentials, SQL, direct game-database access, OCR,
|
||||
screenshots, keyboard/mouse injection, or desktop automation is permitted.
|
||||
|
||||
## 6.3 frontend cleanup and rollback evidence (2026-07-29)
|
||||
|
||||
The generic `PluginPageHostPage` has no hard-coded SCUM import or `game.scum`
|
||||
branch. Static `rg` call-graph audit found zero non-test callers for the
|
||||
following former `platform_web` implementation, so this batch removed it with
|
||||
its private tests, contracts, schemas, API-client methods/types, and map-only
|
||||
styles:
|
||||
|
||||
- `ScumOperationsPanel`, `ScumFileConfigWorkbench`, and the private
|
||||
`scumOperations` contract/schema;
|
||||
- `GamePlayerIntelligencePanel` and `GameGiftCatalogPanel`;
|
||||
- `ScumMapTrajectoryPanel`.
|
||||
|
||||
Their plugin-owned replacement is `features/page.ts`, with typed bridge reads
|
||||
and commands in `features/api.ts`, and the read-only provenance adapters in
|
||||
`features/migration.ts`. The replacement remains capability-gated: missing
|
||||
login/position event producers and missing state-patch/reward-delivery
|
||||
handlers render unavailable controls and never synthesize records or enable a
|
||||
fallback execution path.
|
||||
|
||||
The platform-side `/game-players`, `/game-gifts`, and `/game-map-trajectories`
|
||||
routes, DTO/domain/model/service/repository implementations, and their
|
||||
fixtures remain intentionally. `plugins/tests/fixtures/scum-migration-parity.ts`
|
||||
continues to consume their historical record shapes through allowlisted,
|
||||
`transitional-read-only` migration records. Rollback therefore consists of
|
||||
disabling the exact server/version plugin authority flag, leaving those prior
|
||||
records visible and read-only; it does not restore any deleted host panel or
|
||||
re-enable an unsafe execution route. Backend removal remains blocked until 6.2
|
||||
parity and the required versioned event/operation protocols exist.
|
||||
Remaining production enablement is operational: a deployed Run implementation
|
||||
must provide the declared typed ports. Until then only the affected operation
|
||||
is reported unavailable; the plugin page and unrelated feature capabilities
|
||||
remain active.
|
||||
|
||||
Reference in New Issue
Block a user