Skip to content

feat(monorepo): W3 extract @mirrorbuddy/safety (reversed-shim)#369

Merged
Roberdan merged 2 commits intomainfrom
feat/packages-safety
Apr 23, 2026
Merged

feat(monorepo): W3 extract @mirrorbuddy/safety (reversed-shim)#369
Roberdan merged 2 commits intomainfrom
feat/packages-safety

Conversation

@Roberdan
Copy link
Copy Markdown
Member

Summary

Closes #356. Adds the @mirrorbuddy/safety workspace entry using the reversed-shim pattern established in #367.

Approach

Nothing moves. src/lib/safety/ remains canonical. packages/safety/src/{index,server}.ts re-export via relative path. The 5 safety test files that mock @/lib/logger keep working unchanged because safety code still imports through the logger shim, which the tests intercept. No pre-existing mock surfaces change module identity.

Wiring

  • packages/safety/package.json — workspace package, exports . and ./server
  • packages/safety/tsconfig.json — extends root; includes src/**/* and ../../src/lib/safety/**/* so isolated pnpm --filter … typecheck works
  • next.config.tstranspilePackages += '@mirrorbuddy/safety'
  • root package.json@mirrorbuddy/safety: workspace:*
  • pnpm-lock.yaml — regenerated

Verification

  • pnpm --filter @mirrorbuddy/safety typecheck → exits 0
  • npm run ci:summary → ALL CLEAN
  • full unit suite: 798/802 files, 12029/12044 tests — identical to baseline
  • 88 safety tests pass

🤖 Generated with Claude Code

Closes #356. Same reversed-shim pattern as @mirrorbuddy/tier (#367) /
CONTRIBUTING-MONOREPO.md §Test-arch.

- packages/safety/src/index.ts → ../../../src/lib/safety
- packages/safety/src/server.ts → ../../../src/lib/safety/server

Canonical source stays at src/lib/safety/. The 5 test files that mock
@/lib/logger keep working because safety code still imports @/lib/logger
(the logger shim), which the tests' mock intercepts. No test churn.

Wiring: next.config.ts transpilePackages, root package.json deps,
pnpm-lock regenerated.

Verification:
- pnpm --filter @mirrorbuddy/safety typecheck → exits 0
- ci:summary ALL CLEAN
- full unit suite: 798/802 files pass, 12029/12044 tests — identical to
  pre-change baseline
- 88 safety tests ✅

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 23, 2026

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

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
mirrorbuddy Ignored Ignored Preview Apr 23, 2026 9:21pm

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 23, 2026

Dependency Review

The following issues were found:
  • ✅ 0 vulnerable package(s)
  • ✅ 0 package(s) with incompatible licenses
  • ✅ 0 package(s) with invalid SPDX license definitions
  • ⚠️ 5 package(s) with unknown licenses.
See the Details below.

License Issues

package.json

PackageVersionLicenseIssue Type
@mirrorbuddy/safetyworkspace:*NullUnknown License

packages/safety/package.json

PackageVersionLicenseIssue Type
@mirrorbuddy/dbworkspace:*NullUnknown License
@mirrorbuddy/greetingworkspace:*NullUnknown License
@mirrorbuddy/loggerworkspace:*NullUnknown License
@mirrorbuddy/typesworkspace:*NullUnknown License
Allowed Licenses: MIT, MIT-0, Apache-2.0, BSD-2-Clause, BSD-3-Clause, ISC, 0BSD, Unlicense, CC0-1.0, CC-BY-3.0, CC-BY-4.0, MPL-2.0, Python-2.0, BlueOak-1.0.0, Zlib, AGPL-3.0

OpenSSF Scorecard

PackageVersionScoreDetails
npm/@mirrorbuddy/safety workspace:* UnknownUnknown
npm/@mirrorbuddy/db workspace:* UnknownUnknown
npm/@mirrorbuddy/greeting workspace:* UnknownUnknown
npm/@mirrorbuddy/logger workspace:* UnknownUnknown
npm/@mirrorbuddy/types workspace:* UnknownUnknown
npm/typescript ^5 UnknownUnknown

Scanned Files

  • package.json
  • packages/safety/package.json

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f1ea5d9331

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

Comment thread packages/safety/package.json
Codex P2 on #369: safety re-exports src/lib/safety which imports
@/lib/{logger,db,greeting/templates}; those shims re-export from
@mirrorbuddy/{logger,db,greeting}. The package previously declared
only @mirrorbuddy/types, so isolated/filtered install+typecheck of
@mirrorbuddy/safety was not self-contained.

Add the three missing workspace deps. pnpm --filter … typecheck still
passes; ci:summary ALL CLEAN.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@Roberdan Roberdan merged commit e88d354 into main Apr 23, 2026
42 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.

W3: extract @mirrorbuddy/safety (pure subset + test mock refactor)

1 participant