Skip to content

AGENTS.md: name pyre-module in the cargo test command, and record the module-ownership criteria - #1970

Merged
youknowone merged 1 commit into
mainfrom
gate-math
Sep 27, 2026
Merged

youknowone merged 1 commit into
mainfrom
gate-math

Conversation

@youknowone

@youknowone youknowone commented Sep 26, 2026 •

Copy link
Copy Markdown
Owner

Two AGENTS.md corrections about the pyre-interpreter / pyre-module split.
Doc-only; no code changes.

1. The prescribed cargo test command drops pyre-module

"Before committing" recorded cargo test --all --no-default-features --features dynasm. Since pyre-module became an optional dependency (#1954) that command
drops the crate owning the optional builtin modules — it is a pyrex default, so
--no-default-features leaves it out of the launcher the integration tests run.
The tests that need those modules are gated on the feature, so nothing fails; the
prescribed command just runs a smaller set than CI's cargo test steps, which pass
dynasm,cpyext,pyre-module. The bullet now names the feature and says why.

2. The ownership criteria were only in commit messages

Which crate owns a module is decided by three criteria — an import by name from
the interpreter (baseobjspace.py finish → atexit, warnings →
_contextvars, os → errno, eval.rs build_template_op → _template), PyPy
essential_modules (_opcode), or CPython Modules/Setup.bootstrap (_abc,
_functools, _stat, _suggestions, _symtable, _tokenize, _typing,
faulthandler, pwd). Those are stated in #1954's commit messages and nowhere
a reader of AGENTS.md would find them, so the section describing the core build
now carries them.

It also records why PyPy's default_modules tier is not a fourth criterion:
pypyoption.py declares every module as
BoolOption(modname, default=modname in default_modules), so the tier means "on
by default, switchable off" — exactly what pyrex's
default = [..., "pyre-module"] already expresses. default is not
non-optional.

Why this PR is doc-only

It started as a move of math/cmath into pyre-interpreter on the
default_modules reasoning above. That reasoning was wrong and the commit is
dropped: math/cmath are default_modules but not essential_modules, they
are absent from Modules/Setup.bootstrap at the pinned 3.14.6, and nothing calls
import_module("math"). #1954 had decided this deliberately — it kept them in
pyre-module, marked the dependent fixtures skip-backends=cranelift and
rewrote five others onto errno.

Re-running the three criteria over the whole registry afterwards found nothing
misplaced
: of the 41 names pyre-module registers, none is imported by name by
the interpreter, none is in essential_modules, and none is in
Modules/Setup.bootstrap. The boundary is already right, which is why the only
thing left to do was write the rule down.

🤖 Generated with Claude Code

@coderabbitai

coderabbitai Bot commented Sep 26, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

Warning

Review limit reached

Next included review available in 37 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 2 included reviews currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 99c21082-3a72-44c1-b09e-d6434c8cb2e3

📥 Commits

Reviewing files that changed from the base of the PR and between 9bf1322 and 50d5174.

📒 Files selected for processing (1)
  • AGENTS.md

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 5617ef9c-8a49-4242-852e-5909f27d5489

📥 Commits

Reviewing files that changed from the base of the PR and between 0942b25 and 9bf1322.

📒 Files selected for processing (18)
  • AGENTS.md
  • pyre/bench/synth/a_math_fold_recorded_on_an_int_deopts_for_a_subclass.py
  • pyre/bench/synth/gc_heap_dump.py
  • pyre/bench/synth/import_math.py
  • pyre/bench/synth/math_folds_hot.py
  • pyre/bench/synth/math_isqrt_compare_bridge_resume.py
  • pyre/bench/synth/math_sqrt_hot.py
  • pyre/bench/synth/unspecialized_long_math_zip_paths.py
  • pyre/pyre-interpreter/src/importing.rs
  • pyre/pyre-interpreter/src/jit_fnaddr.rs
  • pyre/pyre-interpreter/src/module/cmath/interp_cmath.rs
  • pyre/pyre-interpreter/src/module/cmath/mod.rs
  • pyre/pyre-interpreter/src/module/math/interp_math.rs
  • pyre/pyre-interpreter/src/module/math/mod.rs
  • pyre/pyre-interpreter/src/module/mod.rs
  • pyre/pyre-jit-trace/src/jitcode_dispatch/specialize.rs
  • pyre/pyre-module/src/lib.rs
  • pyre/pyre-module/src/module/mod.rs
💤 Files with no reviewable changes (7)
  • pyre/bench/synth/math_isqrt_compare_bridge_resume.py
  • pyre/bench/synth/import_math.py
  • pyre/bench/synth/math_sqrt_hot.py
  • pyre/bench/synth/unspecialized_long_math_zip_paths.py
  • pyre/pyre-module/src/module/mod.rs
  • pyre/bench/synth/a_math_fold_recorded_on_an_int_deopts_for_a_subclass.py
  • pyre/bench/synth/math_folds_hot.py

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


Walkthrough

The interpreter now declares and registers math and cmath, and publishes their JIT residual function addresses. The optional-module crate no longer registers those modules or publishes those addresses. Documentation and benchmark directives also change.

Changes

Math module ownership

Layer / File(s) Summary
Register math modules in the interpreter
pyre/pyre-interpreter/src/module/*, pyre/pyre-interpreter/src/importing.rs, pyre/pyre-jit-trace/src/jitcode_dispatch/specialize.rs
The interpreter declares and registers math and cmath. Their implementations use crate-local paths, and JIT specialization gets math builtin names directly from the interpreter.
Move math residual-address publication
pyre/pyre-interpreter/src/jit_fnaddr.rs, pyre/pyre-module/src/lib.rs, pyre/pyre-module/src/module/mod.rs, pyre/pyre-interpreter/src/importing.rs
The interpreter registers math residual targets and aliases. The optional-module crate removes its math module registrations, callback, and residual-address publication.
Update module-enabled checks and benchmark directives
AGENTS.md, pyre/bench/synth/*
The documented test command enables pyre-module, and the example module list no longer includes math. The listed benchmark fixtures no longer exclude Cranelift.

Priority: ➖ Normal

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

Change: Refactor

Merge Risk: ⚪ Minimal · up to 9bf13

No concrete issue remains that would prevent merging after normal checks.

Security Architecture Review

Security architecture risk: 🔵 Low · up to 9bf13

Math and complex-math become available in interpreter-only builds. The inspected numeric validation and optional-module restrictions remain in place, and no concrete security regression was found. Not every build configuration has been verified.

Retained concerns
No architecture-level concerns identified.

Security review details

Security Blast Radius

  • inferred — Python code in interpreter-only builds can newly import these numeric modules. The inspected move does not grant access to the separately gated host-access modules.

Trust Boundaries and Controls

  • observed — Non-builtin numeric objects still pass through checked conversion or special-method paths; the moved registration does not remove those input controls.

Resilience and Maintainability Implications

  • observed — The fmod lowering name binds to the same C-signature implementation as the qualified and root math aliases; alias checks distinguish it from unrelated math operations.
🚥 Pre-merge checks | ✅ 4 | ❓ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ❓ Inconclusive Docstring coverage is 58.21% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 67 functions across 9 files. (2 skipped: … Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
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.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the AGENTS.md cargo test command update, which is part of the changeset. It does not describe the main change: moving math and cmath from pyre-module to pyre-interpreter…
Full details: Docstring Coverage

Explanation

Docstring coverage is 58.21% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 67 functions across 9 files. (2 skipped: 1 unsupported, 1 too large.)

✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

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

A rabbit reads the module trail,
And finds math moved from an optional veil.
The interpreter keeps each name,
JIT addresses join the frame.
The checks now turn the module on,
Then off the rabbit hops at dawn.

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

@youknowone

Copy link
Copy Markdown
Owner Author

Re-measured after the rebase onto 69ff44b9ccb, and two wasm rows are the base's

The PR description's numbers were measured on eca6247b907. gate moved three
times while this was in flight, so here is the same pair of gates on the tree
that is actually pushed:

gate result
cargo test --all --no-default-features --features dynasm,pyre-module 10,171 passed / 217 suites, 0 failed
pyre/check.py dynasm 567/567
pyre/check.py cranelift 565/565
pyre/check.py wasm 2 jit-stats rows regressed
FAIL wasm synth/gc_pypy_frontend            regressed: guard_failures 331 -> 375
FAIL wasm synth/pickle_terminal_raise_resume regressed: loops_aborted 3 -> 4;
                                             improved: loops_compiled 21 -> 24,
                                                       guard_failures 140 -> 139

Both belong to #1960, not to this PR, and the baselines are deliberately left
as they are.
The chain:

#1960 is also why this PR's conflict resolution looks like it lost something:
it deleted the wasm faithful/vouched-ABI block in pyre-jit/src/eval.rs
wholesale, along with the math_faithful_residual_call_addrs and
math_word_residual_call_addrs hook fields that existed only to feed it. The
two edits this PR originally made to that block were resolved by taking #1960's
deletion; the two surviving math_* fields are the ones the move removes.

Re-recording either baseline would hide a residual-call signature change rather
than explain it, so that is left to #1960's owner.

— commented by Claude

@youknowone
youknowone force-pushed the gate branch 6 times, most recently from 4dc4cfa to 25ce3d7 Compare September 26, 2026 23:09
Base automatically changed from gate to main September 26, 2026 23:09
@github-actions

github-actions Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

🤖 Codex parity review

Static analysis of this diff vs the local RPython/PyPy sources (commit 50d5174).
Updated: 2026-09-27T12:53:07.413Z

Files in the reviewed diff
AGENTS.md

Codex did not produce a report (exit 1). Last log lines:

warning: Codex could not find bubblewrap on PATH. Install bubblewrap with your OS package manager. See the sandbox prerequisites: https://developers.openai.com/codex/concepts/sandboxing#prerequisites. Codex will use the bundled bubblewrap in the meantime.
2026-09-27T12:52:48.550490Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:52:48.674212Z ERROR rmcp::transport::worker: worker quit with fatal: Transport channel closed, when UnexpectedServerResponse("HTTP 401: {\n  \"error\": {\n    \"message\": \"Provided authentication token is expired. Please try signing in again.\",\n    \"type\": \"invalid_request_error\",\n    \"code\": \"token_expired\",\n    \"param\": null\n  },\n  \"status\": 401,\n  \"detail\": {\n    \"code\": \"token_expired\",\n    \"message\": \"Provided authentication token is expired. Please try signing in again.\"\n  }\n}")
2026-09-27T12:52:48.675597Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:52:48.675654Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:52:48.675696Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:52:49.102684Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:52:49.568560Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:52:49.665242Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:52:49.779275Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:52:49.883477Z ERROR rmcp::transport::worker: worker quit with fatal: Transport channel closed, when UnexpectedServerResponse("HTTP 401: {\n  \"error\": {\n    \"message\": \"Provided authentication token is expired. Please try signing in again.\",\n    \"type\": \"invalid_request_error\",\n    \"code\": \"token_expired\",\n    \"param\": null\n  },\n  \"status\": 401,\n  \"detail\": {\n    \"code\": \"token_expired\",\n    \"message\": \"Provided authentication token is expired. Please try signing in again.\"\n  }\n}")
2026-09-27T12:52:50.154389Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:52:50.154447Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:52:50.154490Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:52:50.553832Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:52:50.553915Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:52:50.553964Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
ERROR: Reconnecting... 2/5
2026-09-27T12:52:51.154360Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:52:51.154445Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:52:51.154502Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
ERROR: Reconnecting... 3/5
2026-09-27T12:52:52.179844Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:52:52.179916Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:52:52.179963Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
ERROR: Reconnecting... 4/5
2026-09-27T12:52:54.148171Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:52:54.148268Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:52:54.148327Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
ERROR: Reconnecting... 5/5
2026-09-27T12:52:59.162583Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:52:59.162666Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:52:59.162721Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
warning: Falling back from WebSockets to HTTPS transport. workspace routing discovery unauthorized (401)
2026-09-27T12:52:59.471413Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:52:59.471481Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:52:59.471530Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
ERROR: Reconnecting... 1/5
2026-09-27T12:52:59.921189Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:52:59.921257Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:52:59.921321Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
ERROR: Reconnecting... 2/5
2026-09-27T12:53:00.566350Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:53:00.566430Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:53:00.566486Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
ERROR: Reconnecting... 3/5
2026-09-27T12:53:01.552832Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:53:01.552911Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:53:01.552967Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
ERROR: Reconnecting... 4/5
2026-09-27T12:53:03.478625Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:53:03.478711Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:53:03.478767Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
ERROR: Reconnecting... 5/5
2026-09-27T12:53:06.874219Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:53:06.874307Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
2026-09-27T12:53:06.874363Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
ERROR: workspace routing discovery unauthorized (401)
2026-09-27T12:53:07.156862Z ERROR codex_login::auth::manager: Failed to refresh token: Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again.
ERROR: workspace routing discovery unauthorized (401)

@codspeed

codspeed Bot commented Sep 27, 2026

Copy link
Copy Markdown
Contributor

Merging this PR will not alter performance

✅ 10 untouched benchmarks
⏩ 6 skipped benchmarks1


Comparing gate-math (806a5bd) with main (d09431f)2

Open in CodSpeed

Footnotes

  1. 6 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩

  2. No successful run was found on main (653b1fe) during the generation of this report, so d09431f was used instead as the comparison base. There might be some changes unrelated to this pull request in this report. ↩

@youknowone

Copy link
Copy Markdown
Owner Author

CI after the rebase onto main: 16 green, and the wasm ratio this PR reported locally does not exist

The local wasm finding is withdrawn. The PR description flagged
synth/float_subclass_binop_dispatch at 4.9x against the 4x wasm/dynasm gate and
attributed it to host load. pyre/check.py dynasm (ubuntu-24.04) reports

ALL PASSED: dynasm 571/571
ALL PASSED: wasm 560/560

so the fixture passes on a clean machine, with the whole wasm leg green. The
mechanism argument holds too: pyre-wasm depends on pyre-module
non-optionally, so the guest carried math before and after this PR and only the
owning crate changed.

I should also correct how I re-measured it locally. Three --backend wasm
re-runs read PASS and I took that as non-reproduction; those runs were vacuous.
check.py computes the ceiling as a ratio to the dynasm exec measured in the
same invocation, so with no dynasm leg the fixture lands in
wasm_ratio_ungated and the gate is never applied — the run says so in one line:

wasm/dynasm 4x ratio not evaluated for 11 fixture(s): dynasm did not run them
in this invocation, or its execution-only time stayed under 50ms

The paired --backend wasm,dynasm run reproduced it immediately, and in that run
fib_recursive crossed the same gate although it had not in the full sweep — the
instability itself was the signal.

The one red job is the documented test_bad_new_super intermittent, not this
branch.
The job's own check.py legs are green; it fails in the CPython suite
step:

- test.test_enum: PASS -> FAIL  rc=1 FAILED (failures=2, skipped=5)
  FAIL: test_bad_new_super (test.test_enum.TestStrEnumClass.test_bad_new_super)
  -> AssertionError: "do not use .super...__new__;" does not match "object of type …"

That is one of the four recorded outcomes of a single test — test_bad_new_super
in TestStrEnumClass / TestStrEnumFunction — which reaches 14 of the last 100
conclusion=failure runs, always on the pyre/check.py dynasm (ubuntu-24.04)
lane and never reproducible on darwin. The other three are a
str storage is valid WTF-8 panic in hash_str_bytes, SIGSEGV and SIGABRT.
Nothing in this PR touches str hashing, dict key hashing or enum; the diff is
math/cmath changing crate, one fixture header and two AGENTS.md lines.

I have re-run the failed job to show the intermittency rather than asserting it.

Everything else: cargo test green on all three platforms,
pyre/check.py cranelift (ubuntu-24.04) green — that leg is the measurement
behind this PR's claim, since it runs the six fixtures whose cranelift skip this
PR removes on the core build that used to lack math — plus
dynasm+cranelift (macos-latest), dynasm (windows-latest),
dispatcher-graph acceptance, cpyext ABI, CodSpeed and all three
prepare Charon/LLBC legs.

One thing worth a separate look: Codex parity review reports pass but
produced no report — Codex did not produce a report (exit 1) with
HTTP 401 … "code": "token_expired" and Failed to refresh token: … refresh token was already used. The job's green tick is not a review.

— commented by Claude

@youknowone
youknowone force-pushed the gate-math branch 2 times, most recently from 4afd71c to 9bf1322 Compare September 27, 2026 09:15
The CI cargo test steps pass `pyre-module`, and the tests that need the
modules that crate owns are gated on the feature, so the command recorded
here ran a smaller set than CI without saying so.

Assisted-by: Claude
@youknowone youknowone changed the title Move math and cmath from pyre-module to pyre-interpreter Name pyre-module in AGENTS.md's prescribed cargo test command Sep 27, 2026
@youknowone
youknowone merged commit eccd42e into main Sep 27, 2026
3 checks passed
@youknowone
youknowone deleted the gate-math branch September 27, 2026 12:48
@youknowone youknowone changed the title Name pyre-module in AGENTS.md's prescribed cargo test command AGENTS.md: name pyre-module in the cargo test command, and record the module-ownership criteria Sep 27, 2026
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