Skip to content

Add game telemetry and declarative effect plugins - #60

Merged
mskutin merged 1 commit into
mainfrom
codex/game-plugins
Oct 19, 2026
Merged

mskutin merged 1 commit into
mainfrom
codex/game-plugins

Conversation

@mskutin

@mskutin mskutin commented Oct 19, 2026

Copy link
Copy Markdown
Owner

Counter-Strike 2 can now send authenticated, opt-in Game State Integration events to a chosen strip. Selected events apply temporary bounded zones, respect quiet hours/comfort/off state, and restore the ordinary scene on expiry, disconnect or revocation.

Adds a versioned declarative plugin API with separate effect compositions and game-event integrations, explicit capability consent, preview/install/enable/disable/remove controls and samples. No executable plugin code or filesystem/network/capture/renderer privileges. Includes 0.15.0 release manifests and usage/API documentation.

Validation: 93 native tests passed (one unrelated interactive capture test skipped), strict Clippy and formatting, browser game/plugin lifecycle controls, 14 release tests, and isolated native Windows install/disable/remove/off-state and unauthorized-telemetry smoke. No physical USB or live game validation claimed; hardware and accessibility trackers remain open.

Closes #24
Closes #27

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-19T10:49:37.159614Z 3b28c8d PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3b28c8d7e0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src-tauri/src/engine.rs
Comment on lines +1541 to +1546
if let Some(effect) = &self.extension {
effect.render(
&mut colors,
self.state.settings.speed,
self.state.settings.effect_reverse,
);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Route extension overlays through the per-LED writer

When the controller is running the default solid scene without Studio zones, this renders spatial plugin effects and telemetry zones into colors, but the unchanged output predicate at lines 1610–1614 remains false and the hardware path sends controller.solid(colors.first(), ...). Consequently the bundled Ocean Wave becomes one uniform color, and a telemetry zone that excludes the first LED is invisible on the strip even though the preview looks correct. Treat a live extension or external cue as frame-active when selecting the controller writer.

Useful? React with 👍 / 👎.

Comment thread src-tauri/src/game.rs
let overlay = Overlay::cue(rule, cue_guard.clone())?
.with_guard(guard)
.with_guard(active.clone());
let _ = target.request(Action::Automation {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Revoke telemetry when its target controller is removed

When telemetry targets a removable secondary controller and that controller is subsequently deleted, Fleet::remove shuts down its worker but this listener retains the cloned handle. Every later cue request therefore fails here and is discarded, while valid posts continue updating seen, so the UI reports connected telemetry that can no longer produce output until the user manually reconfigures it. Revalidate or revoke the session when the target worker closes.

Useful? React with 👍 / 👎.

@mskutin
mskutin merged commit 900a523 into main Oct 19, 2026
9 checks passed
@mskutin
mskutin deleted the codex/game-plugins branch October 19, 2026 11:02
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.

Define a plugin system for effects and integrations Add game telemetry integrations

1 participant