mirror of
https://github.com/logancyang/obsidian-copilot.git
synced 2026-07-22 07:50:24 +00:00
* fix(mobile): shim `process` so the bundle survives module-eval on mobile Follow-up to #2576 (preview issue #125). After the EventEmitter fix, mobile now crashes at load with "ReferenceError: Can't find variable: process". Cause: Agent Mode is desktop-only but its modules are statically imported, so they're evaluated on every platform. Several read the Node global `process` at module scope (e.g. `InstallCommandRow.tsx`'s `const DEFAULT_LABEL = process.platform === "win32" ? ...`, the codex/claude/opencode descriptors), and bundled Node deps read `process.env` at init. Mobile's WebView has no `process`, so evaluating any of them throws during import and kills the plugin. Fix: prepend a minimal `process` shim in the esbuild banner — `var process = globalThis.process || { env:{}, platform:"", ... }`. Desktop (Electron) has a real `globalThis.process` and uses it unchanged; mobile gets the stub, so module evaluation no longer throws. The desktop-only code paths that actually use `process` never run on mobile. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * chore(test-vault): copy-deploy into iCloud-synced vaults for mobile testing `npm run test:vault` symlinks main.js/styles.css by default, but iCloud syncs file contents, not link targets, so a symlinked build never reaches the phone. Detect iCloud vaults (path under "/Mobile Documents/") and copy real files instead, so deploying to an iCloud vault makes the build testable on Obsidian mobile. Mirrors the existing WSL copy-mode rule. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * fix(mobile): keep agent mode off load path * test(mobile): add load smoke check * fix(mobile): share agent chat mode constant --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
37 lines
1.3 KiB
YAML
37 lines
1.3 KiB
YAML
# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
|
|
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs
|
|
|
|
name: Node.js CI
|
|
|
|
on:
|
|
push:
|
|
branches: ["master", "main"]
|
|
pull_request:
|
|
# Run on all pull requests regardless of target branch
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
matrix:
|
|
node-version: [22.x]
|
|
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Use Node.js ${{ matrix.node-version }}
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: ${{ matrix.node-version }}
|
|
cache: "npm"
|
|
- run: npm ci
|
|
- run: npm run lint
|
|
- run: npm run test:mobile-load
|
|
- run: npm test
|
|
- name: Run Integration tests
|
|
# Only run integration tests for trusted events (push) or when secrets are available
|
|
if: ${{ github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository }}
|
|
env:
|
|
GEMINI_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
|
|
run: npm run test:integration
|