Repository navigation
feat: package exact solver with strict TypeScript, configuration and CLI - #2
Conversation
…e CLI Preserve the matrix reference, build four browser/module formats and a standalone CLI with Vite, add strict types and consumer tests, and prepare reproducible benchmark and release helpers. Workflow integration follows completed local verification.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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: b66d3d8d37
ℹ️ 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".
| npm-delivery: | ||
| name: Publish npm and verify browser delivery | ||
| needs: verification | ||
| if: github.ref == 'refs/heads/main' && github.event_name != 'pull_request' && vars.NPM_PUBLICATION_READY == 'true' |
There was a problem hiding this comment.
Require an explicit release action before npm delivery
In the inspected release.yml, every push to main—including a PR merge—satisfies this condition whenever NPM_PUBLICATION_READY remains true; because RELEASE_KIND defaults to stable, the workflow then proceeds directly to npm publish. This couples merging to publication and risks creating an immutable npm release from an ordinary merge, so stable delivery should require an explicit dispatch or equivalent separate release signal.
AGENTS.md reference: AGENTS.md:L58-L61
Useful? React with 👍 / 👎.
The minimum-action solver becomes a reusable TypeScript package with a small public contract, shared library/CLI core and verified browser/Node distribution.
This revision addresses readability across every source file and the GitHub delivery tooling. Search orchestration, matrix row operations, predecessor storage, input validation and publication steps now have named responsibilities. Domain bounds, storage units and sentinels are explicit; deeply nested operations are split into short functions without changing search order or adding dependencies. Oxlint limits nesting to three levels in
src/and.github/scripts/.src/*.tsfiles and two build entries:index.tsandcli.ts.solveLock(state, links, config?)andcreateSolverConfig(overrides?); preserve readonly tuple typing, immutable defaults and CLI--config.tests/and maintained documentation underwiki/. Generate reports, snapshots, coverage and traces only as artifacts.release.ymlworkflow with three jobs: readonly verification, npm delivery and GitHub release. Main verification/build runs once. The same tested archive passes between jobs; publication uses trusted main tooling and separate permissions.Local tests and the full benchmark completed before workflow YAML changes. An independent reviewer examined all ten source files, all seven delivery scripts and the workflow data flow; findings were resolved without adding reviewer reports to the repository.
Reproduce from the repository root:
The benchmark compares the separately checked-out target source, not a candidate-owned expected snapshot. Inconclusive performance does not certify the absence of a regression and is not silently accepted for publication.
Hosted CI on b66d3d8 passed on its first attempt. Verification completed; the npm/GitHub publication jobs were skipped for this PR.
Verification artifacts contain the five builds, one archive tested in Node 22/24/26, coverage, real-browser reports, the baseline snapshot and the complete 45-input benchmark with calibration and bounded repeats. The downloaded artifact, report hashes, module hashes, source SHA and archive SHA were checked.
Hosted quality remains A/U/C/switches = 483/245/1723/438. Timing and memory both remain inconclusive. Sums of per-lock medians were 60.685 ms for the candidate and 55.259 ms for the target; these descriptive sums are not whole-workload latency or proof of a speedup. The report identifies candidate
b66d3d8d371b2d7f17d85bf6bed9186006eab87cand separately checked-out target3cbbeedbb409a2d8ffa5b00c778cfcb0b07c0ec6.This PR remains a draft. The reference branch and history are preserved. No package publication, GitHub release or merge is part of this revision.