mirror of
https://github.com/stablyai/orca.git
synced 2026-09-22 08:02:28 +00:00
* fix(linux): restore Ubuntu 20.04 launch by pinning node-pty glibc symbols (#9902) The bundled node-pty pty.node is compiled from source in release CI on ubuntu-latest (glibc 2.39). glibc's 2.32-2.34 libpthread/libutil merge relocated openpty/forkpty (GLIBC_2.34) and pthread_sigmask (GLIBC_2.32) into libc under new symbol versions, so the from-source build bound to versions absent on Ubuntu 20.04 (glibc 2.31). The main process imports node-pty at startup, so the app crashed on launch. pty.node is the sole blocker (Electron needs GLIBC_2.25; other native modules <= 2.17). - Patch node-pty: a .symver shim pins the 3 symbols to their pre-merge version (GLIBC_2.2.5 x64 / GLIBC_2.17 arm64), and Linux-only ldflags force libutil.so.1/libpthread.so.0 back into DT_NEEDED. Guarded to Linux; macOS/Windows untouched. - Add a packaging gate (verify-linux-glibc-floor.cjs, afterPack): reads each bundled native binary's objdump -p version needs and fails the Linux build if any strong GLIBC_/GLIBCXX_/CXXABI_ node exceeds stock Ubuntu 20.04 (glibc 2.31 / GLIBCXX_3.4.28 / CXXABI_1.3.12). Catches GLIBC_ABI_DT_RELR, rejects GLIBC_PRIVATE, skips weak needs, fail-closed. - Docs + tests; the lazy sherpa-onnx speech prebuilt (GLIBCXX_3.4.29, never loaded at launch) is a documented libstdc++-floor exemption. * fix(linux): assert DT_NEEDED provider deps in the glibc-floor gate Harden the packaging gate (flagged in adversarial re-eval): the version-floor check alone can false-pass if the patch's forced `-l:libutil.so.1` ever silently drops — the pinned openpty@GLIBC_2.2.5 still resolves from libc's compat alias at build time, but fails to load on Ubuntu 20.04 where openpty/forkpty live only in libutil. The gate now also asserts that any binary importing openpty/forkpty keeps libutil.so.1 in DT_NEEDED. Validated on a real symver-pinned .so with libutil dropped (now fails) vs. present (passes). Documents the recommended real-host smoke-test follow-up.
130 lines
2.5 KiB
Plaintext
130 lines
2.5 KiB
Plaintext
# Build artifacts
|
|
tsconfig.*.tsbuildinfo
|
|
|
|
# TypeScript emit artifacts next to sources (tsc produced these accidentally;
|
|
# real source lives in .ts/.tsx). Hand-authored declaration files are
|
|
# re-included below.
|
|
src/**/*.js
|
|
src/**/*.d.ts
|
|
/electron.vite.config.js
|
|
/electron.vite.config.d.ts
|
|
!src/main/types/hosted-git-info.d.ts
|
|
!src/preload/api-types.d.ts
|
|
!src/preload/index.d.ts
|
|
!src/renderer/src/env.d.ts
|
|
!src/renderer/src/mermaid.d.ts
|
|
!src/types/build-constants.d.ts
|
|
|
|
# Dependencies
|
|
node_modules/
|
|
|
|
# Build output
|
|
dist/
|
|
dist-electron/
|
|
out/
|
|
/build/
|
|
release/
|
|
native/**/.build/
|
|
|
|
# pnpm
|
|
.pnpm-store/
|
|
package-lock.json
|
|
|
|
# Environment
|
|
.env
|
|
.env.local
|
|
.env.*.local
|
|
|
|
# IDE
|
|
.vscode/
|
|
.idea/
|
|
.serena/
|
|
*.swp
|
|
*.swo
|
|
*~
|
|
|
|
# OS
|
|
*.stackdump
|
|
.DS_Store
|
|
Thumbs.db
|
|
|
|
# Lint/cache
|
|
.oxlintcache
|
|
|
|
# Logs
|
|
*.log
|
|
*.log.*
|
|
npm-debug.log*
|
|
pnpm-debug.log*
|
|
|
|
# Coverage
|
|
coverage/
|
|
|
|
# Prod release scan output (accidental adds)
|
|
prod-release-scan-*.md
|
|
|
|
# Benchmark run output
|
|
/tools/benchmarks/results/*.json
|
|
/.bench-fixtures/
|
|
|
|
# Temp
|
|
tmp/
|
|
.tmp/
|
|
design-docs/
|
|
.context/
|
|
.atl/
|
|
|
|
# Machine-local agent hook endpoint files may contain auth tokens.
|
|
/agent-hooks/
|
|
|
|
# Local-only design/planning docs (not checked in), including most of docs/reference/.
|
|
# Durable docs that should be tracked must live in one of the allow-listed
|
|
# locations below (assets, readme, STYLEGUIDE, mobile terminal shortcut bar,
|
|
# and the tracked reference docs linked from AGENTS.md / README.md).
|
|
docs/**
|
|
!docs/
|
|
!docs/assets/
|
|
!docs/assets/**
|
|
!docs/readme/
|
|
!docs/readme/**
|
|
!docs/STYLEGUIDE.md
|
|
!docs/mobile-terminal-shortcut-bar.md
|
|
!docs/reference/
|
|
!docs/reference/git-compatibility.md
|
|
!docs/reference/headless-linux-server.md
|
|
!docs/reference/linux-glibc-compatibility.md
|
|
|
|
# Stably CLI (only docs/ are tracked)
|
|
.stably/*
|
|
!.stably/docs/
|
|
.playwright-cli
|
|
.validate-ui-screenshots/
|
|
validation-screenshots/
|
|
.stably-browser
|
|
|
|
# Local scratch notes and PR evidence screenshots (not part of the product).
|
|
/notes/
|
|
/pr-evidence/
|
|
|
|
# Playwright
|
|
test-results/
|
|
playwright-report/
|
|
|
|
# Agent skill installations (machine-local, populated by agent tooling)
|
|
/.claude/skills/
|
|
/.agents/skills/
|
|
/skills-lock.json
|
|
|
|
# Agent hook runtime endpoints (machine-local secrets)
|
|
/agent-hooks/
|
|
validation-screenshots/
|
|
|
|
# Localization bootstrap cache (regenerated by bootstrap:*-catalog)
|
|
src/renderer/src/i18n/locales/.zh-catalog-cache.json
|
|
src/renderer/src/i18n/locales/.ko-catalog-cache.json
|
|
src/renderer/src/i18n/locales/.ja-catalog-cache.json
|
|
src/renderer/src/i18n/locales/.es-catalog-cache.json
|
|
|
|
# Bench result JSONs are working artifacts
|
|
tools/benchmarks/results/terminal-pipeline-*.json
|