Skip to content

chore: promote dev/delicious233 to master#292

Merged
DeliciousBuding merged 149 commits into
masterfrom
dev/delicious233
Jun 7, 2026
Merged

chore: promote dev/delicious233 to master#292
DeliciousBuding merged 149 commits into
masterfrom
dev/delicious233

Conversation

@DeliciousBuding
Copy link
Copy Markdown
Collaborator

Summary

Verification

XavierTrump added 30 commits June 2, 2026 12:19
…st infra

Phase 1: Fix popover/tooltip clipping via overflow:clip
Phase 2: AgentTeamsSection with CRUD modals, member management, 9 mutation hooks
Phase 3: TeamRunConsole interactive — start runs, approve/deny, resolve conflicts, assign tasks
Phase 4: Test factories, renderWithProviders, browser-global setup, vitest setupFiles

16 files, 845 insertions. typecheck + 742 tests passing.
- hubClient.ts: keep dev/delicious233 types + methods (already has all
  AgentTeam CRUD), add createTeamAssignment, restore members on AgentTeam
- teamRunQueries.ts: keep dev/delicious233 imports, adapt trump mutation
  hooks to use addAgentTeamMember/removeAgentTeamMember
- App.module.css: take dev/delicious233 full rewrite + overflow:clip
- SettingsPage.tsx: keep dev/delicious233 restructured component,
  add AgentTeamsSection import
- en.json/zh.json: merge both branches (178 missing keys added)
- vitest*.config.ts: use testSetup.ts, keep execArgv + maxWorkers
- Remove superseded setup.ts
46 new i18n keys from dev/delicious233 merged into en.json + zh.json
The envOrDev helper returns localhost:8080 when import.meta.env.DEV is true,
which is the case in vitest. The test previously expected the production URL.
…nfig

- frontend-web: add pnpm/action-setup@v4 (was failing with "pnpm: command not found")
- E2E smoke: add --config e2e/playwright.config.ts path
- Add test-setup.ts with vi.mock for @emoji-mart/data to prevent
  JSON import assertion error in vitest Node.js environment
- Add preview.port + preview.strictPort to vite.config.ts so
  vite preview always binds to port 5175
- Simplify playwright webServer command (port is in vite config)
- Add resolve.alias for @emoji-mart/data -> src/mocks/emoji-mart-data.ts
  so vitest redirects the module before Node tries to import native.json
- Also keep vi.mock in setupFiles as a fallback
- Change E2E webServer command to cd ../web && npx vite preview
  since pnpm --filter from e2e/ directory may not resolve workspace
- Add webServer timeout to playwright config
…rver in CI step

- Add custom Vite plugin with resolveId hook to intercept @emoji-mart/data
  before Node.js ESM loader rejects the JSON import
- Keep resolve.alias and server.deps.inline as fallbacks
- Start vite preview server as background process in CI step instead of
  using Playwright's webServer, since webServer command runs from e2e/
  directory where pnpm may not resolve workspace correctly
- Remove webServer config from playwright.config.ts
…view

- Add Node.js ESM loader hooks to intercept @emoji-mart/data JSON import
  and return an empty stub, working around Node 22 import assertion enforcement.
- Clean up vitest config: remove failed Vite plugin, alias, and deps.inline.
- Fix E2E Smoke: use cd+pnpm exec instead of pnpm --filter for vite preview.
…view

- Add Node.js ESM loader hooks to intercept @emoji-mart/data JSON import
  and return an empty stub, working around Node 22 import assertion enforcement.
- Clean up vitest config: remove failed Vite plugin, alias, and deps.inline.
- Fix E2E Smoke: restore Playwright webServer with corrected cd+pnpm exec command
  instead of broken pnpm --filter approach.
Bypass pnpm to avoid potential NODE_OPTIONS stripping. Node loads the
ESM loader hook directly before executing vitest, ensuring the
@emoji-mart/data intercept is active for both main thread and workers.
Replace pnpm exec vite preview with python3 -m http.server to avoid
pnpm workspace resolution issues when starting the preview server.
…d of pnpm test

The .bin/vitest entry is a shell script, not a JS file that Node can
execute directly. Use inline shell VAR=value syntax to set NODE_OPTIONS
before running the shell wrapper, bypassing pnpm entirely.
…SM hook

The resolve hook now catches resolution errors within @lobehub/icons and
@lobehub/ui trees, returning an empty stub instead of crashing. This
handles edge cases where Node.js cant resolve extension-less imports.
…R_MODULE_NOT_FOUND

@lobehub/icons uses bundler-friendly imports (directory imports, extension-less)
that Node.js ESM resolver rejects with various error codes
(ERR_UNSUPPORTED_DIR_IMPORT, ERR_MODULE_NOT_FOUND, etc). Catch all of them.
…subtree

The dependency chain keeps expanding (@lobehub/fluent-emoji is next).
Instead of whack-a-mole, catch any ERR_UNSUPPORTED_DIR_IMPORT or other
resolution failure originating from node_modules — these are bundler-vs-Node
compatibility issues that are safe to stub in tests.
Try /index.js for directory imports and .js for extension-less imports
in node_modules before falling back to empty stub. This resolves modules
correctly instead of stubbing them, preventing named export errors.
…t/data

Node 22 requires import assertions for JSON files. Any package in
node_modules that imports a .json file without the assertion will fail.
Intercept all .json specifiers and return empty stubs.
Packages with JSON main (like @lobehub/emojilib) have non-.json
specifiers but resolve to .json URLs. Check result.url for .json
after successful resolution and stub before loading fails.
jsdom does not implement window.matchMedia, which is required by
components that use responsive/dark-mode media queries. The ESM
resolution fixes now allow the tests to load correctly, exposing
this pre-existing jsdom configuration gap.
TypeScript tsc cannot find the globally-defined vi when vitest globals
is enabled. Import vi explicitly so both tsc and vitest can resolve it.
DeliciousBuding and others added 29 commits June 7, 2026 07:19
Security:
- S-3: hub oidc service — truncate token exchange error logs to 128 chars
  to avoid logging potentially sensitive response bodies
- S-4: hub repository — escape ILIKE wildcards (%/_) in message search
  to prevent user input from matching arbitrary patterns
- S-6: edge CORS — explicitly set Access-Control-Allow-Credentials: false

Quality:
- D-1: align react/react-dom to ^19.2.7 across all packages
  (shared peerDep widened to >=19.2.7, mobile bumped from ^19.1.0)
- BU-2: align Cargo.toml version to 0.2.0 matching tauri.conf.json

Based on audit report: docs/review-2026-06-07-glm-5.1/00-SUMMARY.md
Conflicting fixes deferred to backend/frontend branches — see
HANDOFF-BACKEND.md and HANDOFF-FRONTEND.md.
…pertyTypes

D-2: Remove unused npm dependencies (zero source references):
  - @pierre/diffs (shared)
  - @tanstack/react-virtual (desktop, web)
  - class-variance-authority (desktop)
  - zod (web)

BU-1: Align exactOptionalPropertyTypes to false across all packages.
  Web had true while others had false/unset, causing cross-project
  type signature incompatibility. Mobile now has explicit false.
…hing Web)

Desktop/Web unified UI requires identical strictness. Both now use
exactOptionalPropertyTypes: true. Mobile untouched (not yet active).

Desktop typecheck passes. Web typecheck passes.
fix(security+quality): 审计安全区修复 — ILIKE转义/OIDC日志脱敏/CORS/依赖清理
Merge v4 shared Desktop/Web UI rebuild into dev/delicious233.
@DeliciousBuding DeliciousBuding merged commit f3b91ab into master Jun 7, 2026
24 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.

2 participants