3.4 KiB
3.4 KiB
SCUM Capability Negotiation and Run Acceptance Audit (2026-08-13)
This evidence records a browser-repository audit for task 4.7 and the Platform-side implementation evidence for task 4.8.
Run acceptance audit
- Local independent Run checkout inspected read-only from the ignored nested checkout: it is on
main...origin/main, latest commit8fe6f9b(Fix SQLite probe data target mapping), with only ignored local-debug dirt. The visible history covers schema-probe and data-target materialization work (6cb6ba3,9cc9ab3,8fe6f9b) and does not contain the later generic SQLite-template, typed RCON-template, guarded mutation, or parsed-log-source execution acceptance evidence required by task 4.7. - Browser-repository handoff evidence files for SQLite template execution, typed RCON template execution, guarded SQLite/XML mutation execution, and log-source tailing were re-read. Each is explicitly a contract handoff only and says it is not Run implementation, deployment, or product acceptance evidence.
- Server-management MCP was used for the remote path:
list_devices,test_connectionfor枣庄服务器, then one bounded read-only PowerShell diagnostic. The diagnostic returned only redacted aggregates: connection OK,runProcessCount=0, zero scanned Run roots, and zero marker hits forsqlite.template-query,rcon.template-command,sqlite.guarded-mutation,log.parsed-events, duplicate/late terminal markers, and protected RCON/SQL capability markers. It emitted no host paths, command lines, log lines, credentials, sockets, IP/network material, database rows, SQL, XML, RCON text, or player identities. - Conclusion: task 4.7 remains pending. There is still no independent Run acceptance evidence proving channel priorities, leases, fencing, acknowledgements, idempotency, and late/duplicate terminal-result handling for the new generic capabilities. The schema-probe/data-target evidence recorded earlier remains valid only for the probe path and does not enable DB-backed reads, typed commands, gifts, guarded mutations, or parsed-login ingestion.
Platform capability negotiation
- Added a read-only Platform capability negotiation path for the active server/plugin/Run endpoint/runtime binding:
GET /api/v1/server-instances/{id}/scum/capabilities. - The negotiation evaluates each SCUM manifest gate independently against the bound Run capability list and latest accepted typed terminal evidence for the same server, Run binding, Run endpoint, plugin version, adapter version, database identity, schema fingerprint, and asset digest set.
- The route returns only capability, enabled/disabled state, safe reason code, safe reason, binding identifiers, and evaluation time. It never dispatches Run jobs and never returns terminal rows, SQL, XML, RCON text, host paths, DSNs, sockets, credentials, protected payloads, or raw service content.
- Added regression coverage for compatible schema-probe evidence, compatible
players.readSQLite-template evidence, missing per-capability evidence, missing protected RCON executor support, stale Run binding rejection, unauthorized access, no forbidden-material leakage, and no dispatch from the capabilities read.
Verification
- Passed:
go test ./domain ./dto ./service ./api -run 'TestSCUMCapabilityNegotiation|TestSCUMSchemaProbeEndpointQueuesPlatformScheduledDurableJob|TestLegacySCUMEndpointsReturnNotFoundWithoutDispatchingJobs'.