Skip to content

fix(ci): restore avatar browser tests and stabilize fuel exhaustion fixture - #290

Merged
jlucaso1 merged 5 commits into
mainfrom
fix/avatar-web-test-boundary
Oct 30, 2026
Merged

jlucaso1 merged 5 commits into
mainfrom
fix/avatar-web-test-boundary

Conversation

@jlucaso1

@jlucaso1 jlucaso1 commented Oct 30, 2026 •

Copy link
Copy Markdown
Member

Three baseline CI problems blocked the profiling PRs #288 and #289. This PR separates GUI avatar decoding from the actual storage file used by daemon browser tests, makes the infinite-loop fuel fixture cheaper while retaining explicit bare-branch coverage, and prevents duplicate avatar probe instrumentation in the comparison workflow. Storage behavior, the production fuel budget, deadlines, assertions and measurement coverage remain intact.

Baseline failures, reproduction and classifications are recorded in docs/measurements/ci-288-289-triage.md. Validation passed: 136 native plugin-host tests, 16 daemon and 32 session browser tests, Clippy with warnings denied and formatting. Workflow instrumentation was verified on current-main and legacy inputs, including repeated application.

Final head 71130e9 is qualified: CI, Pages, Avatar restore and Release artifacts all completed successfully. Codex reviewed this exact head without findings; no unresolved review threads or merge conflicts. Ready for user review and merge. No PR merge was performed.

Summary by CodeRabbit

  • Bug Fixes
    • Improved avatar decoding compatibility in browser-based sessions, while ensuring outdated decode requests don’t produce results.
  • Tests
    • Strengthened checks for plugin execution limits, including verification that fuel exhaustion is detected promptly.
  • Documentation
    • Added notes covering recent CI issues and their resolutions.

@coderabbitai

coderabbitai Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 9bd7fdf6-2c47-423c-923b-bdd25abb30a6
Commits

Reviewing files that changed from the base of the PR and between 33108ce and 71130e9.

Files selected for processing: 6
  • .github/workflows/avatar-restore.yml
  • crates/gui/src/session/avatar/mod.rs
  • crates/gui/src/session/avatar/web.rs
  • crates/gui/src/session/avatar/web_platform.rs
  • crates/plugin-host/src/tests.rs
  • docs/measurements/ci-288-289-triage.md
Files with no reviewable changes: 1
  • crates/gui/src/session/avatar/web.rs

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

Walkthrough

The wasm avatar decoder now resides in web_platform, and the avatar workflow instrumentation avoids duplicate insertions. Plugin-host fuel tests use a revised loop fixture and add a bounded test for an OutOfFuel trap.

Changes: Avatar platform and workflow

Layer / File(s) Summary
Wasm avatar decoder
crates/gui/src/session/avatar/mod.rs, crates/gui/src/session/avatar/web.rs, crates/gui/src/session/avatar/web_platform.rs, docs/measurements/ci-288-289-triage.md
Wasm builds now use web_platform, which re-exports web and provides the conditional avatar decoder. The triage document records the relocation and browser-test results.
Idempotent avatar instrumentation
.github/workflows/avatar-restore.yml, docs/measurements/ci-288-289-triage.md
The workflow script adds its probe module and test-only counter instrumentation only when those declarations or increments are absent. The triage document records the change and its validation.

Plugin-host fuel tests

Layer / File(s) Summary
Fuel-metering test coverage
crates/plugin-host/src/tests.rs, docs/measurements/ci-288-289-triage.md
The spins fixture adds constant/drop pairs to its loop. A separate test checks that a bare branch loop traps with OutOfFuel within the deadline. The triage document records the timeout context and test results.

Priority: Normal

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Bug fix

Possibly related PRs

Suggested reviewers: greptile-apps

Merge Risk: Minimal · up to 71130

The reviewed CI fixes preserve their intended behavior, with no identified merge-blocking risk.

Pre-merge checks: Passed 5
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly and concisely identifies the two primary changes: restoring avatar browser tests and stabilizing the fuel exhaustion fixture.
Docstring Coverage Passed No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 3 files. (2 skipped: 2 unsupported.)

Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copy link
Copy Markdown
Member Author

@codex review

Please review final head a1758d0. Check that the GUI web_platform adapter preserves the same decode/storage entry points while daemon tests still compile and exercise the actual web.rs storage implementation. Also check the fuel fixture: deadline, unconditional loop, stopped-state/fuel assertions and 50,000,000-unit production budget remain unchanged; const/drop pairs consume Wasmi 2 operator fuel before folding. Baseline/main reproduced both failures; final browser suites and native plugin-host tests passed. Checkpoint: docs/measurements/ci-288-289-triage.md.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 30, 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-30T08:18:03.187225Z 71130e9 Draft marked ready
ℹ️ 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

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Swish!

Reviewed commit: a1758d0667

ℹ️ 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".

Copy link
Copy Markdown
Member Author

@codex review

Please review final head 0e3e4b8. It adds an explicit bounded bare-branch probe so the cheaper integration fixture cannot hide a free-branch metering regression. The original empty (loop (br 0)) now separately must produce the precise OutOfFuel trap with 32 units, under a ten-second receive deadline. The existing host test still exercises the actual 50,000,000-unit production budget and must publish a stopped plugin with a fuel error. No runtime settings, test deadlines or assertions are relaxed.

Final local validation: 136 plugin-host tests passed, one existing ignored; Clippy all targets/features with warnings denied and formatting passed. Final browser layout passed all 16 daemon + 32 session tests. Checkpoint updated in docs/measurements/ci-288-289-triage.md. Previous a1758d0 review completed without findings; this request covers the additional bare-branch coverage.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Delightful!

Reviewed commit: 0e3e4b8405

ℹ️ 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".

Copy link
Copy Markdown
Member Author

@codex review

Please review final head 71130e9. The Rust source is unchanged from reviewed 0e3e4b8. The avatar comparison workflow failed in its BASE measurement with E0428: it unconditionally reinjected mod probe, PERSISTENT_READS and its read increment, all already committed on main by #282. The follow-up adds only-if-absent guards for each, preserving both base/candidate measurements and PNG/JPEG runs.

Executed the actual Python block extracted from YAML on current main and an uninstrumented legacy fixture. Each produced exactly one probe/counter/increment; a second application was byte-identical. Main input was entirely byte-identical after instrumentation. Detailed checkpoint appended to docs/measurements/ci-288-289-triage.md. On the previous head, workspace Clippy, workspace tests, doctests, CLI budget and host example checks had passed; final-head CI reruns after this workflow-only fix.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Keep it up!

Reviewed commit: 71130e9f15

ℹ️ 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".

@jlucaso1
jlucaso1 marked this pull request as ready for review October 30, 2026 08:16
@jlucaso1
jlucaso1 merged commit 4314bf8 into main Oct 30, 2026
20 checks passed
@jlucaso1
jlucaso1 deleted the fix/avatar-web-test-boundary branch October 30, 2026 10:44
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