Skip to content

feat: add seasonal Workshop client evidence workflow - #30

Merged
Teakowa merged 4 commits into
mainfrom
feat/workshop-rs-21-live-client
Aug 18, 2026
Merged

Teakowa merged 4 commits into
mainfrom
feat/workshop-rs-21-live-client

Conversation

@Teakowa

@Teakowa Teakowa commented Aug 18, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Implements the repository-owned/offline portion of #21 as a Draft PR stacked on #19.

  • Adds workshop_rs::live_capture::LiveCapture for provenance-rich manually recorded client captures: client/season/time/environment, locale, catalog identity, authoritative workshop_rs::census::CensusIdentity digest/shards, raw artifact pinning, and Define the Workshop conformance result contract and stable feature identities #18 feature-attributed results.
  • Adds offline LiveCapture::diff and workshop-rs-cli seasonal-diff <previous.json> <current.json> [--json] with locale, catalog, content, semantic/schema, and separate runtime-uncertainty classifications.
  • Validates live-client evidence linkage, raw artifact revision/path/SHA-256, matching catalog/locale/client provenance, and current-catalog validation when requested. Historical captures remain comparable for catalog drift.
  • Documents the manual en-US baseline and zh-CN sweep, import/export procedure, raw artifact retention, and reviewed follow-up path in ADR-0005.

Explicit client boundary

No Overwatch client was available for this implementation. No real client capture or fabricated live evidence is committed. The schema/diff tests use clearly labelled synthetic unit inputs only. Manual client import/export and gameplay validation remain maintainer-only acceptance boundaries; import/export does not claim runtime correctness.

Checks

  • cargo fmt --all --check
  • cargo clippy --locked --workspace --all-targets -- -D warnings
  • cargo test --locked --workspace --all-targets
  • cargo run --locked -p workshop-rs --bin workshop-catalog-gen -- check
  • git diff --check

Refs #21 (manual client validation remains open).

@Teakowa

Teakowa commented Aug 18, 2026

Copy link
Copy Markdown
Contributor Author

Independent QA follow-up addressed in commit 72ff506:

  • Added a legal synthetic schema-only capture helper to exercise seasonal-diff text and --json success paths; no client artifact or live evidence is committed.
  • Enforced normalized catalog target game ↔ capture game linkage.
  • Enforced result-level client environment ↔ capture environment linkage.
  • Added negative coverage for both provenance mismatches.

Please perform a fresh QA pass against the new head. The real Overwatch client boundary remains explicitly manual/unverified.

@Teakowa

Teakowa commented Aug 18, 2026

Copy link
Copy Markdown
Contributor Author

Fresh independent QA: PASS — VERIFIED on head 72ff506.

  • Synthetic capture drives CLI text and --json success paths without any real client artifact.
  • Catalog target game and result environment linkage are enforced and negatively tested.
  • Schema/raw SHA-256/locale/catalog/census provenance, feature attribution, drift classes, and runtime uncertainty all pass.
  • Full local gates: 160 tests passed; stable/Rust 1.85 CI and catalog check passed.

Remaining explicit boundary: no real Overwatch import/export or gameplay evidence; maintainer-only manual validation remains open per ADR-0005.

@Teakowa
Teakowa force-pushed the feat/workshop-rs-21-live-client branch from 72ff506 to 54370a4 Compare August 18, 2026 07:41
@Teakowa
Teakowa force-pushed the feat/workshop-rs-19-census branch from d172df7 to 098a623 Compare August 18, 2026 07:45
@Teakowa
Teakowa force-pushed the feat/workshop-rs-21-live-client branch 4 times, most recently from 555e85c to a7215dc Compare August 18, 2026 07:54
@Teakowa

Teakowa commented Aug 18, 2026

Copy link
Copy Markdown
Contributor Author

Fresh independent QA — VERIFIED / PASS

Exact head reviewed: a7215dcb56d1535e1236a416bdbd530de4126bb8.

  • CensusIdentity has one canonical definition in workshop_rs::census; live_capture only consumes/re-exports it.
  • Offline validation rejects malformed identities, missing client/artifact provenance, mismatched catalog/locale/artifact data, and invalid result evidence.
  • Synthetic inputs are explicitly labelled; no real client capture or fabricated runtime evidence is committed.
  • Local fmt, Clippy, workspace/all-targets tests, catalog check, and diff check passed.
  • Stable and Rust 1.85 CI passed on this exact head; worktree is clean.
  • PR history/body use only Refs #21; no closing reference is present, and Issue Establish the seasonal live-client Workshop validation and structured-diff workflow #21 remains OPEN.

The previous QA on 72ff506 is superseded by this exact-head review. The repository-owned offline workflow is verified; real en-US/zh-CN client capture and runtime acceptance remain maintainer-only work under #21.

Base automatically changed from feat/workshop-rs-19-census to main August 18, 2026 08:45
@Teakowa
Teakowa force-pushed the feat/workshop-rs-21-live-client branch from a7215dc to 22e2dbb Compare August 18, 2026 08:53
@Teakowa
Teakowa marked this pull request as ready for review August 18, 2026 08:53
@Teakowa
Teakowa merged commit 93fc8ae into main Aug 18, 2026
2 checks passed
@Teakowa
Teakowa deleted the feat/workshop-rs-21-live-client branch August 18, 2026 08:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant