Repository navigation
Conversation
Pin Oxfmt and its framework parsers, preserve the existing formatting scope, and verify ownership and idempotence with real CLI fixtures. Keep Deno as the writer and generated-code formatter while a temporary whole-tree gate accepts either complete formatting style. This allows the mechanical normalization to land separately without dropping validation of the generated vocabulary. Codex assisted with planning, implementation, and validation. Claude Code reviewed the plan and helped refine the contributor documentation. fedify-dev#1285 fedify-dev#1281 Changelog: none Assisted-by: Codex:gpt-6.1-sol Assisted-by: Claude Code:claude-fable-5-1
Apply the reviewed 80-column configuration without import sorting, metadata sorting, or embedded template rewrites. Keep the existing formatting exclusions and raw generator snapshots intact. Retain four intentional layout exceptions and move five existing lint and type suppression comments to their wrapped diagnostic lines. The result is a formatter fixed point; TypeScript structure, rendered JSX text, and parsed configuration values preserve their previous meaning. Codex applied and validated the mechanical changes. Claude Code helped review and refine the migration plan and formatting choices. fedify-dev#1285 Changelog: none Assisted-by: Codex:gpt-6.1-sol Assisted-by: Claude Code:claude-fable-5-1
Use Oxfmt for default formatting, package checks and editor saves so these workflows no longer require Deno. Keep Deno type validation and JSR compatibility, with explicit checks for ignored generated code. Format generated vocabulary with the shared Oxfmt options and track committed formatter inputs for regeneration. Preserve atomic output publication, remove dprint, and cover configuration parity and failure handling. Document the formatting differences and ownership. Closes fedify-dev#1285 Changelog: none Assisted-by: Codex:gpt-6.1-sol Assisted-by: Codex:gpt-6-astra Assisted-by: Claude Code:claude-fable-5-1 Assisted-by: Claude Code:claude-opus-5-5 Assisted-by: OpenCode:kimi-for-coding
✅ Deploy Preview for fedify-json-schema canceled.
|
Codex Review Summary: ✅ CompletedThis 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. |
|
Important Review skippedToo many files! This PR contains 825 files, which is 675 over the limit of 150. To get a review, reduce the PR to 150 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. Usage-priced reviews support at most 300 files.
|
Oxfmt collapsed JSON arrays in the published benchmark schemas, breaking the canonical serialization guards on Node.js and Bun. Restore the original bytes and leave these files under their generator's ownership. Keep the strict schema drift and immutability guards intact. Extend the formatter regression to preserve all six published files while still formatting other schema JSON, and document the ownership exception. fedify-dev#1393 fedify-dev#1285 Changelog: none Assisted-by: Codex:gpt-6.1-sol
Windows Git checkouts converted source files to CRLF while Oxfmt requires LF, so bootstrap's no-Deno format check rejected every checked-out file. Set the text checkout policy in Git attributes and preserve Sacho's merge rules without renormalizing the repository. Exercise a real isolated Git checkout with autocrlf enabled to verify that source stays in LF and binary bytes remain unchanged. fedify-dev#1393 fedify-dev#1285 Changelog: none Assisted-by: Codex:gpt-6.1-sol
Two Windows runs crashed natively after the tiny mixed-format fixture finished with four workers. Limit this ownership test to one worker, while keeping its language, exclusion and idempotence assertions and the default parallel repository checks. Run the complete formatter test file in twenty fresh Windows processes and fail on any nonzero result. This checks the mitigation on the same Node.js runtime without suppressing the native failure. fedify-dev#1393 Changelog: none Assisted-by: Codex:gpt-6.1-sol Assisted-by: Codex:gpt-6-astra
Windows Oxfmt processes repeatedly crashed during native teardown after successfully formatting the mixed-language fixture, including with one worker. Use Node 24.22.0 for the Windows bootstrap job, covering the Node-API shutdown fix documented by Oxfmt for Node 24.13.1 and later. Keep other bootstrap targets and Linux package tests on Node 22. Restore default worker concurrency in the fixture and retain the Windows 20-process stress gate. Local Node 24 tooling and stress checks pass; hosted Windows must still validate this runtime change. fedify-dev#1393 nodejs/node#55706 Changelog: none Assisted-by: Codex:gpt-6.1-sol
The mixed-language formatter fixture still crashes during native process teardown on Windows with Node 24, after the single-worker candidate also failed. Preserve the normal failing test and gather evidence before changing another runtime or formatter dependency. On Windows bootstrap failure, probe individual languages, static markup, and mixed/omitted-language cases in fresh CLI processes. Record process IDs, timestamps, exit codes and output, preserve the inputs as artifacts, and collect native application-error events. A failed probe remains a failure even if later probes succeed. fedify-dev#1393 Changelog: none Assisted-by: Codex:gpt-6.1-sol Assisted-by: Codex:gpt-6-astra
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 73450864fc
ℹ️ 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".
The first Windows language sweep reproduced the crash only in the full mixed fixture and yielded no useful application-error event. Focus the next comparison on identical default/single-worker mixed runs under Node 24, retaining every failure as diagnostic evidence. After a failure, use Microsoft's ProcDump to capture an unhandled native exception. Bound capture attempts and process-tree lifetime, distinguish debugger status from target status, and retain the ordinary heap layout. Limit dumped processes' environment and continue process diagnostics if the optional debugger download fails. Preserve the original full sweep. fedify-dev#1393 https://learn.microsoft.com/en-us/sysinternals/downloads/procdump Changelog: none Assisted-by: Codex:gpt-6.1-sol Assisted-by: Claude Code:claude-fable-5-1 Assisted-by: Codex:gpt-6-astra
ProcDump 12.02 rejected -k together with direct -x launching, preventing any native dump in the Windows diagnostic. Remove the unsupported flag and keep the existing timed process-tree cleanup. Decode its UTF-16LE Windows output so future capture results remain readable. Also parse --mixed independently of the optional output directory. A local flag-only invocation must run focused probes in temporary space and clean it up, rather than create a --mixed directory in the checkout. fedify-dev#1393 Changelog: none Assisted-by: Codex:gpt-6.1-sol Assisted-by: Claude Code:claude-fable-5-1
The focused Windows probes still crashed with default and single-worker settings, while ten ProcDump-launched processes exited normally without a dump. Collect app-specific WER mini dumps around the same unwrapped probes to retain their native crash conditions. Preserve existing registry values and types in place, restore them after the diagnostic, and remove newly created keys. Launch the diagnostic parent with the same restricted environment as its children. Stage raw dumps outside artifacts and retain only recorded formatter process IDs. Keep the probe exit code and report any restoration error as failure. fedify-dev#1393 https://learn.microsoft.com/en-us/windows/win32/wer/collecting-user-mode-dumps Changelog: none Assisted-by: Codex:gpt-6.1-sol Assisted-by: Codex:gpt-6-astra
Oxfmt 0.77 repeatedly crashed natively in Windows formatter processes. Node upgrades and a single worker did not stabilize it. Use the previous 0.76 release, whose worker pool starts eagerly, as a matched candidate while retaining the existing Astro, Svelte and Tinypool versions. Keep the Deno mapping and both locks aligned. The full local gate and ownership/API-CLI parity tests pass without source reformatting. Increase the Windows gate to 100 fresh complete formatter test processes so the candidate must demonstrate stability before the investigation closes. fedify-dev#1393 https://registry.npmjs.org/oxfmt/0.76.0 Changelog: none Assisted-by: Codex:gpt-6.1-sol Assisted-by: Codex:gpt-6-astra
Oxfmt 0.76 passed the Windows bootstrap and 100 fresh formatter test processes under Node 24. Restore the original mise-pinned Node 22 target and retain that complete stress gate for final validation. Remove the temporary native-dump script and workflow steps now that the formatter version comparison passed. Document the 0.76 pin and require the Windows gate when upgrading it. Ownership and generated-code parity assertions remain in the normal formatter suite. fedify-dev#1393 Changelog: none Assisted-by: Codex:gpt-6.1-sol
Before this change, the default formatter required Deno, while #1281 is moving routine development tooling to Node.js. Oxfmt now runs the default formatting and formatting checks without Deno, including package checks for Node.js packages. Hongdown and Sacho retain Markdown ownership, and Deno remains available for compatibility tests and JSR validation. Fedify library APIs and runtime behavior are unchanged.
The shared configuration keeps the existing 80-column style, quoted property names, and file exclusions. Import, package metadata, and Tailwind class sorting are disabled, as are JSDoc rewriting and embedded formatting in JavaScript and TypeScript templates. Unavoidable differences, mostly line wrapping and conditional-expression indentation, are documented in FORMATTING.md. The mechanical normalization is isolated in 3f56463, between the preparation and final switch commits, so it can be reviewed separately from tooling changes. Four layout exceptions and five relocated diagnostic suppression comments are preserved.
The vocabulary generator now formats its output with Oxfmt instead of dprint, using the same global options as the CLI. Formatter configuration and manifest changes invalidate generated output; formatting errors leave the previous output intact. Checks name the Git-ignored packages/vocab/src/vocab.ts explicitly. VS Code and Zed use the local formatter without save-time import sorting, while retaining Deno type diagnostics.
mise run checkpassed before each commit. The vocabulary and vocabulary-tools suites passed on Deno, Node.js, and Bun withmise run test-each vocab vocab-tools.mise run test:tooling:no-deno,mise run codegen:check:deno, andmise exec -- deno publish --dry-run --allow-dirty --allow-slow-typesalso passed. Repeated formatting was stable; syntax-tree, JSX-output, and parsed JSON/YAML comparisons checked semantic equivalence, including the complete generated vocabulary. Raw generator snapshots are unchanged.The Astro, Nuxt, and SvelteKit example checks passed. The Netlify Astro example timed out waiting for readiness; the same failure was reproduced from the original base commit with its original locked dependencies.
Closes #1285. Part of #1281.