Skip to content

Remediate npm audit release blockers - #246

Merged
HomenShum merged 1 commit into
mainfrom
codex/remediate-npm-audit
Jul 29, 2026
Merged

Remediate npm audit release blockers#246
HomenShum merged 1 commit into
mainfrom
codex/remediate-npm-audit

Conversation

@HomenShum

Copy link
Copy Markdown
Owner

Summary

  • updates @auth/core to the patched compatible release and canonicalizes bounded email identifiers before validation
  • replaces ExcelJS's vulnerable legacy archive-writer chain with the ExcelJS-compatible writer package
  • preserves ExcelJS's existing parser ordering while replacing its unused fstream extraction surface with an explicit fail-closed boundary
  • refreshes the lock to patched fast-uri, postcss, and nanoid transitives surfaced by the clean audit
  • adds before/after audit evidence and scenario-based compatibility coverage

Root cause and compatibility

The release gate was blocked by three Auth.js advisories and two brace-expansion paths below ExcelJS. A leaf-only brace-expansion override is not compatible with legacy Minimatch. npm audit fix --force proposed an unreasoned ExcelJS downgrade, and Archiver 8 rejects ExcelJS's CommonJS/legacy stream contract.

The selected writer is the purpose-built @excel.js/archiver@0.0.5. ExcelJS 4.4 keeps unzipper@0.10.14 for its Parse({ forceStream: true }) ordering, while the unused Extract/Open dependency is replaced by a local package that throws on every fstream operation. A future extraction call therefore fails closed.

Verification

  • npm ci
  • npm audit --audit-level=moderate -> 0 vulnerabilities
  • npm audit --omit=dev --audit-level=moderate -> 0 vulnerabilities
  • focused auth/workbook/parser/export suite -> 4 files, 19 tests passed
  • ExcelJS compatibility stress -> 12/12 runs passed; each run covers a 1,024-row stream, 16 waves x 4 concurrent writers, truncated input, and exact dependency resolution
  • npm run floor -> 373 files, 2,571 tests passed
  • npm run prod:gate -> audit, source/dist security, design/UI contracts, QA/proof/SLO gates, root/Convex typechecks, 2,571 tests, product-memory Playwright, and production build passed

No merge or deployment is included in this PR.

@vercel

vercel Bot commented Jul 29, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
noderoom Ready Ready Preview, Comment Jul 29, 2026 6:18am

Request Review

@github-actions

github-actions Bot commented Jul 29, 2026

Copy link
Copy Markdown

Scaffold Handoff — For Your Coding Agent

Your coding agent (Codex, Claude Code, etc.) should apply the accepted
scaffold proposals below. Do NOT touch any immutable files.

Immutability Check

Mode: advisory

✅ No immutable files were modified in this branch.

Changed Files

  • convex/authEmail.ts
  • docs/eval/OFFICIAL_BENCHMARK_READINESS.md
  • docs/eval/OFFICIAL_BENCHMARK_TASK_COVERAGE.md
  • docs/eval/OPENROUTER_CONVEX_BENCHMARK.md
  • docs/eval/agent-improvement-loop.md
  • docs/eval/agent-improvement-loop.svg
  • docs/eval/agent-improvement-loop/20260729T061749Z.json
  • docs/eval/agent-improvement-loop/latest.json
  • docs/eval/agent-workspace-sandbox-smoke.json
  • docs/eval/algorithm-artifact-smoke.json
  • docs/eval/bankertoolbench-official-contract.json
  • docs/eval/docker-sandbox-probe.json
  • docs/eval/eval-runs.jsonl
  • docs/eval/halo-convex-context-telemetry.json
  • docs/eval/halo-self-improvement-smoke.json
  • docs/eval/halo-variant-selection.json
  • docs/eval/official-benchmark-readiness.json
  • docs/eval/official-benchmark-task-coverage.json
  • docs/eval/openrouter-convex-benchmark.json
  • docs/eval/professional-catalog-proofs.json
  • docs/eval/professional-proof-ledger.json
  • docs/eval/spreadsheetbench-chart-visual-probe.json
  • docs/eval/traces/credit/20260729T061759004Z-6798c10c_dirty.dd98030e934a4719/cascade-healthy.json
  • docs/eval/traces/credit/20260729T061759004Z-6798c10c_dirty.dd98030e934a4719/delta-incomplete.json
  • docs/eval/traces/credit/20260729T061759004Z-6798c10c_dirty.dd98030e934a4719/mapping-correct.json
  • docs/eval/traces/credit/20260729T061759004Z-6798c10c_dirty.dd98030e934a4719/mapping-misbind.json
  • docs/eval/traces/credit/20260729T061759004Z-6798c10c_dirty.dd98030e934a4719/summit-stressed.json
  • docs/eval/traces/ladder/20260729T061758513Z-6798c10c_dirty.a78e349524546f17/ladder_L1_read_scripted.json
  • docs/eval/traces/ladder/20260729T061758513Z-6798c10c_dirty.a78e349524546f17/ladder_L2_edit_scripted.json
  • docs/eval/traces/ladder/20260729T061758513Z-6798c10c_dirty.a78e349524546f17/ladder_L3_conflict_scripted.json
  • docs/eval/traces/ladder/20260729T061758513Z-6798c10c_dirty.a78e349524546f17/ladder_L4_blocked_scripted.json
  • docs/eval/traces/ladder/20260729T061758513Z-6798c10c_dirty.a78e349524546f17/ladder_L5_large_range_scripted.json
  • docs/eval/traces/ladder/20260729T061758513Z-6798c10c_dirty.a78e349524546f17/ladder_L6_long_horizon_scripted.json
  • docs/eval/traces/ladder/20260729T061758513Z-6798c10c_dirty.a78e349524546f17/ladder_L7_resume_scripted.json
  • docs/security/EXCELJS_DEPENDENCY_HARDENING.md
  • evidence/auth-email-canonicalization/after.txt
  • evidence/auth-email-canonicalization/before.txt
  • evidence/npm-audit-remediation/after.txt
  • evidence/npm-audit-remediation/before.txt
  • package-lock.json
  • package.json
  • tests/authEmailVerification.test.ts
  • tests/exceljsDependencyCompatibility.test.ts
  • vendor/exceljs-security/fstream/index.cjs
  • vendor/exceljs-security/fstream/package.json

Needs Adversarial Review — Do NOT Apply Yet

These proposals passed the reject check but have not been approved by
an adversarial reviewer. A human or frozen LLM judge must approve them first.

  • scaf-001 (AGENTS.md): Add explicit instruction for step spreadsheetbench-runner-fixture: Step spreadsheetbench-runner-fixture failed — scaffold may need explicit instruction or evidence assertion.
  • scaf-002 (AGENTS.md): Add explicit instruction for step convex-boundaries: Step convex-boundaries failed — scaffold may need explicit instruction or evidence assertion.

Safety Boundary

Agent may improve the scaffold.
Agent may NOT weaken the proof gate.

Immutable files (never modify):

  • scripts/proofloop.mjs
  • scripts/agent-improvement-loop.ts
  • tests/harnessChangeEval.test.ts
  • .github/workflows/
  • src/eval/evalTrustPolicy.ts
  • src/eval/architectureBudget.ts
  • evals/evalStore.ts

Scaffold files (safe to modify):

  • AGENTS.md
  • CLAUDE.md
  • proofloop/scenarios/*.yaml
  • proofloop/rubrics/*.yaml
  • proofloop/subagents/*.md
  • proofloop/adapters/*.js
  • .proofloop/memory.jsonl
  • src/nodeagent/models/prompts/systemPrompt.ts

@HomenShum
HomenShum force-pushed the codex/remediate-npm-audit branch from f0e6f1f to 4fd2671 Compare July 29, 2026 06:16
@HomenShum
HomenShum merged commit b007e70 into main Jul 29, 2026
12 checks passed
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