Run GitHub Issue and PTY stats Resource providers on WASIp2 - #411
Conversation
|
@codex please review this PR. Posted on behalf of @schickling
|
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3118515939
ℹ️ 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".
agent-identity: dev3.direct.omp.2cshu64q agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.0.9 agent-runtime: OMP 18.0.9 tooling-profile: dotfiles@b607597
agent-identity: dev3.direct.omp.2cshu64q agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.0.9 agent-runtime: OMP 18.0.9 tooling-profile: dotfiles@b607597
agent-identity: dev3.direct.omp.2cshu64q agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.0.9 agent-runtime: OMP 18.0.9 tooling-profile: dotfiles@b607597
agent-identity: dev3.direct.omp.2cshu64q agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.0.9 agent-runtime: OMP 18.0.9 tooling-profile: dotfiles@b607597
3118515 to
26e6821
Compare
|
@codex review Posted on behalf of @schickling
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 26e6821fca
ℹ️ 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".
| Ok(provider_api::ProviderDescriptor { | ||
| capabilities: vec![provider_api::SchedulingCapability::Demand], | ||
| selector_schema_json: SELECTOR_SCHEMA.into(), | ||
| default_selector_json: "{}".into(), |
There was a problem hiding this comment.
Provide a default that satisfies the selector schema
When a caller omits a selector and uses this advertised default, {} is missing the schema-required owner, repo, and number fields, so observe immediately returns Failed("invalid GitHub issue selector"). Make the default valid or remove the claim that this provider supplies a usable default.
Useful? React with 👍 / 👎.
| .all(|topic| profile_topics.contains(topic.as_str())), | ||
| "provider descriptor declares a topic outside the profile contract" | ||
| ); | ||
| Ok(()) |
There was a problem hiding this comment.
Enforce the provider selector contract at admission
When a resolver profile has a broader or different selector schema than its component, desired_bindings validates only against the resolver descriptor and this function still accepts the provider because it never compares or applies provider.selector_schema or provider.default_selector. Such selectors are admitted as healthy bindings but every demand can then fail inside the guest parser; validate compatibility with the provider's selector contract before returning success.
Useful? React with 👍 / 👎.
Problem
st2 has Resource observation demand and publication semantics, but no production provider components. Native provider processes would leave cancellation, capability scope, and publication fencing inconsistent.
Goal
Run GitHub Issue and PTY stats observations end to end as typed WASIp2 components, while preserving demand coalescing, catch-up delivery, generation fencing, health, and scope isolation.
Decisions
github-issueorpty-stats.pty stats --json [session], clears environment, fixes cwd, bounds output, and owns process-group kill plus reap without a recyclable-pgid window.Verification
nix flake check --print-build-logspassed locally after one unrelated lock/socket test flake passed in isolated retry.The E2Es cover publication/unchanged/failure, no partial commit, leading/trailing coalescing, future-generation queueing, mid-flight cancellation to
StaleGeneration, durable disconnected receipts, catch-up replay-once, topic filtering, cross-catalog isolation, restart recovery, degraded/ready health, capability denial, and the 256-request admission boundary.Complexity
Two small domain capability modules and guest components sit behind one universal executor. The asynchronous job boundary is required so one slow provider cannot block all bindings or supervisor control operations.
Concerns
GitHub support is anonymous public-read only. Private repositories and authentication are intentionally absent.
Friction & bottlenecks
Full Nix validation took several minutes and repeatedly triggered shared auto-GC. One pre-existing parallel socket/owner-lock test failed once and passed unchanged in isolated retry.
Follow-ups
References
Posted on behalf of @schickling
agent_identitysessionagent_personaagent_supervisoragent_toolagent_tool_versionagent_runtimetooling_profile