Skip to content

ci: use main shared workflows - #942

Closed
peternhale wants to merge 63 commits into
certinia:mainfrom
forcedotcom:ph/W-23832274-workflow-main-refs
Closed

ci: use main shared workflows#942
peternhale wants to merge 63 commits into
certinia:mainfrom
forcedotcom:ph/W-23832274-workflow-main-refs

Conversation

@peternhale

Copy link
Copy Markdown

Summary

  • update all local salesforcecli/github-workflows references to use main
  • remove the temporary pnpm stable-promotion branch dependency

Validation

  • pnpm exec prettier --check .github/workflows/*.yml
  • git diff --check

peternhale and others added 30 commits July 24, 2026 05:42
… extension

Replace direct workspace.fs and Node.js module usage with browser-compatible
services layer from salesforcedx-vscode-services.

**File Operations (FsService):**
- Replace all workspace.fs.readFile with readFile() service wrapper
- Replace all workspace.fs.writeFile with writeFile() service wrapper
- Replace all workspace.fs.stat existence checks with fileOrFolderExists()
- Add findFiles() for web-safe glob-based class file discovery

**Org Operations (ApexLogService):**
- Replace @salesforce/apex-node with listLogs() and getLogBody() services
- Remove Node-only dependencies: @salesforce/apex-node, @salesforce/core
- Remove @apexdevtools/apex-ls (replaced with FsService.findFiles glob)
- Retain @apexdevtools/apex-parser (string-based, browser-compatible)

**Services Integration:**
- Add salesforceServices.ts: thin async/await wrappers over Effect-based API
- Add servicesRuntime.ts: Effect ManagedRuntime initialization
- Update Main.ts: call initServices() before extension activation
- Add Main.web.ts: browser entry point (re-exports shared activation)

**Path Operations:**
- All path manipulation now uses vscode-uri Utils (joinPath, basename, etc.)
- Zero Node.js path module usage

**Tests:**
- Update LogEventCache tests to mock salesforceServices instead of workspace.fs
- Update RetrieveLogFile tests to mock service layer
- Fix vscode mock Uri.joinPath to use Utils.joinPath from vscode-uri
- All 1068 tests passing

**Configuration:**
- package.json: add browser entry point, extensionDependencies, effect deps
- tsconfig.json: add DOM lib for TextEncoder/TextDecoder types
- Build configs: add browser bundle target for lana (Main.web.js)

**Deleted:**
- lana/src/salesforce/logs/* (GetLogFile, GetLogFiles, SalesforceConnection)
- lana/src/salesforce/setupPinoPaths.ts (pino logging setup)

Result: Single codebase runs on desktop (Node.js) and web (workspace.fs/Tooling API)
with all platform-specific operations abstracted through the services layer.
Migrate from top-level out/ to dist/ to satisfy Code Builder Web's copy
filter, which strips out/ as desktop waste. CBWeb's reference extensions
use dist/ for both desktop (dist/) and web (dist/web/) entry points.

Changes:
- Bundler configs: update rollup.config.mjs + rolldown.config.ts output
  dirs and copy destinations from lana/out → lana/dist
- Root scripts: build:dev + watch clean lana/dist instead of lana/out
- lana/package.json: main/browser fields point to dist/ paths; vscode:bundle
  now runs the real monorepo build (pnpm -w run build) instead of placeholder
- .vscodeignore: ship !dist/ instead of !out/
- .gitignore: ignore dist/ instead of out/
- LogView.ts: load webview assets from extensionUri/dist (load-bearing runtime
  path change — index.html, bundle.js, codicon.css, icon)
- Editor globs: .vscode/launch.json outFiles + settings.json exclude/search
  updated for consistency

Webview assets (bundle.js, index.html, codicons) still originate from
log-viewer/out; only the copy destination into lana changes. Desktop and
web bundles now both land under dist/, matching CBWeb's convention and
surviving its copy filter.

Enables lana to be bundled as a built-in extension in CBWeb without
weakening CBWeb's safety exclusions.
Resolved conflicts by keeping browser-support architecture:
- Retained vscode-uri and services abstraction layer
- Integrated new features from main: resolveConfig, workspaceManager
- Adopted improved SymbolFinder with ApexSymbol candidates
- Updated dependencies and regenerated lockfile
- Replace Node path module with vscode-uri Utils for browser compatibility
- Fix OpenFileInPackage to pass fsPath string (not Uri) to showFile
- Update test mocks to provide complete Uri interface (path + fsPath)
- Normalize paths in SfdxProjectReader test mock
Add pnpm overrides to force patched versions:
- brace-expansion ^5.0.9 (was 5.0.6, fixes DoS CVEs)
- fast-uri ^4.1.2 (was 4.0.0, fixes host confusion CVEs)
- js-yaml ^4.3.1 (fixes quadratic CPU consumption)
- serialize-javascript ^7.0.5 (fixes XSS)
- uuid ^11.1.1 (fixes buffer bounds check)

All production vulnerabilities resolved (0 found in pnpm audit --prod)
feat(browser): route all file I/O and org operations through services…
test: add browser and desktop E2E coverage (W-23770526)
ci: rework release automation W-23770528
peternhale and others added 29 commits August 12, 2026 11:54
…rketplace

feat: publish web VSIX to CBWeb - W-23832274
I need the new workflows on branch main in order to test.
…release

ci: support manual nightly CBWeb publishing
…dry-run

Ph/w 23832274 manual publish dry run
…dry-run

fix: preserve web log URIs and manual publish checks
…og-access

fix: report denied Apex log access
exclude folder .fastcontext
@peternhale peternhale closed this Aug 19, 2026
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