Commit Graph

281 Commits

Author SHA1 Message Date
can1357 4e62f3b7fd Merge PR #7660: ci(release): add SHA256SUMS.txt to GitHub releases (@andrew-scott-fischer) 2026-08-05 22:16:29 +02:00
can1357 afe926329d docs(ci): update local TypeScript runner comment 2026-08-05 22:16:29 +02:00
can1357 a1316bb22b Merge PR #7726: ci: ran the mnemopi suite in the workspace bucket (@Cyrus580529) 2026-08-05 22:16:29 +02:00
can1357 f92f402456 Merge PR #7693: fix(install): make install.ps1 compatible with Windows PowerShell 5.1 (@metaphorics) 2026-08-05 21:50:26 +02:00
Cyrus 8bbe1ed01d ci: ran the mnemopi suite in the workspace bucket
The stated reason for the exclusion no longer holds: no test in
packages/mnemopi loads the fastembed model. The suites that touch embeddings
inject a deterministic in-process provider via setEmbeddingProviderForTests,
and the model-cache suite mocks globalThis.fetch, so nothing downloads or
reads a ~270MB model. On a clean checkout with no model cached, all 448 tests
across 73 files pass on linux-x64 in 11.7s.

packages/mnemopi moves into fastWorkspacePackages, which the workspace bucket
runs and which local-ts already covered through localOnlyWorkspacePackages, so
the local full run is unchanged.
2026-08-05 21:44:00 +08:00
metaphorics 781d98fbad fix(install): make install.ps1 compatible with Windows PowerShell 5.1 2026-08-05 11:43:34 +00:00
can1357 e9888367d1 refactor: migrated packages to internal utility modules and removed external dependencies
- Implemented in-house, zero-dependency utility modules in `pi-utils` covering DOM manipulation, markdown parsing, templating, browser automation helpers, and terminal buffers.
- Migrated packages across the repository to consume the new internal utilities and `omptype` schema validators instead of external dependencies.
- Removed multiple external runtime and development dependencies including Zod, Marked, LRU cache, Turndown, and Puppeteer browser packages.
2026-08-05 13:39:09 +02:00
Kyle McCleary afdc1caa6c fix(ci): align native install smoke metadata 2026-08-04 20:10:05 -07:00
can1357 6baaeec785 style: organized imports in release tooling (biome) 2026-08-05 01:15:43 +02:00
can1357 2605243f38 fix: complete version comparator centralization 2026-08-05 01:11:56 +02:00
Andrew Fischer e03407e684 perf(ci): stream release asset hashing instead of buffering into memory
Avoids holding every release binary in RAM at once when computing SHA256SUMS.txt.
2026-08-04 15:48:35 -07:00
Andrew Fischer 5da9525afd ci(release): add SHA256SUMS.txt to GitHub releases
Generate a sha256sum-compatible checksums file covering every release
binary and the browser-relay zip, and upload it as a release asset so
downloads can be verified offline without hitting the GitHub API.
2026-08-04 15:38:18 -07:00
metaphorics 3a9b823630 fix(release): import the comparator without loading native bindings
Wave-4 review finding on #7586:
- release.ts took compareVersions from the pi-utils barrel, which pulls
  file-lock and procmgr into the graph; those import pi-natives, whose
  entrypoint calls loadNative() and throws in a checkout without the
  built addon
- that also meant scripts/release.test.ts never executed under
  test:scripts, so the guard wired into CI last round proved nothing
- take the dependency-free version subpath instead
2026-08-05 04:50:17 +09:00
metaphorics df3fa86f7d fix(release): reject prereleases and normalize the version prefix
Wave-2 review findings on #7586:
- the guard accepted `17.2.8-rc.1`, and the publish step passes no
  --tag, so a prerelease would have become the npm `latest` every
  unqualified install and `omp update` resolve
- `v17.2.8` passed the guard and reached Cargo.toml verbatim, which
  cargo rejects only after every manifest was rewritten; validation now
  returns the normalized version and callers write that
2026-08-05 02:48:59 +09:00
metaphorics 726698e2b0 fix(release): validate explicit versions and drop duplicate comparators
Review findings on #7586:
- validate an explicit release version before comparing; the shared
  comparator never throws, so 999.bad previously reached every manifest
- ci-release-notes imports the comparator by relative path: the
  release_github job runs without bun install
- route Bun cache pruning through compareVersions and delete
  compareSemverLikeVersions
- regression test for the release-version guard
2026-08-05 02:48:59 +09:00
metaphorics 954894f1d4 refactor: centralize version comparison in pi-utils 2026-08-05 02:48:59 +09:00
can1357 e2412f68b2 Merge PR #7546: fix(setup): verify musl binary starts before reporting install success (@roboomp) 2026-08-03 23:41:21 +02:00
can1357 bc39ffa265 feat: introduced omptype validation package and migrated workspace dependencies
- Introduce `@oh-my-pi/omptype` as a new ArkType-compatible schema validation package featuring a lazy JIT runtime, JSON Schema emission, and compatibility adapters.
- Replace `arktype` across workspace packages and test utilities with `@oh-my-pi/omptype`.
- Add benchmark suites, tests, and documentation for the new validation engine and adapters.
- Update workspace build, test runner, and release configurations to include the new package.
2026-08-03 21:56:48 +02:00
roboomp 5046438f3b fix(setup): verify musl binary starts before reporting install success
install_binary downloaded the release binary, chmod'd it, and printed
"✓ Installed omp" with exit 0 without ever running it. Bun's musl-target
binaries link libstdc++/libgcc dynamically, which stock Alpine/musl systems
lack, so the binary exits 127 with relocation errors while the installer
still claimed success.

Smoke-run `omp --version` after install; on failure print the captured
error, add the `apk add libstdc++ libgcc` remediation for musl targets,
and exit non-zero. Document the Alpine/musl runtime requirement in the
README install section.

Fixes #7545
2026-08-03 18:55:10 +00:00
can1357 fc04aa6fa7 refactor(coding-agent): deferred startup parsing and schema compilation
- Wrapped security contract schemas in a lazy initializer with jitless scopes to eliminate startup JIT compilation tax.
- Enabled jitless scope configuration in auth-broker wire schemas to skip definition-time codegen.
- Deferred startup changelog parsing to overlap with interactive session creation.
2026-08-03 16:31:27 +02:00
can1357 8cd6e3e964 chore: delete dumb tests 2026-08-03 15:45:44 +02:00
can1357 881eec7d26 fix(release): shipped clipboard entrypoint in pi-natives npm package
- prepareNativeCorePackage's files whitelist predated the native/clipboard
  module; the packed tarball lacked it and the coding-agent CLI failed with
  'Cannot find module @oh-my-pi/pi-natives/clipboard' in the tarball install
  smoke. Verified the packed tarball now contains clipboard.js/.d.ts.
2026-08-02 23:32:24 +02:00
roboomp 9f9c9758a1 fix(tui): prevented test env from suppressing interactive launch
Scoped test-runtime detection to explicit runner markers and Bun test entrypoints, so application NODE_ENV/BUN_ENV values no longer make ProcessTerminal headless.

Added subprocess regression coverage and propagated the private marker to test children.

Fixes #7261
2026-08-01 11:39:57 +00:00
can1357 5ea583e413 feat: replaced legacy editing commands with unified put and cut syntax
- Replaced legacy `SWAP`, `INS`, and `PASTE` commands with unified `PUT` and `CUT` hunks across parser, grammar, tokenizer, and test suites.
- Added support for named registers and span paste operations in clipboard and block execution logic.
- Implemented indentation repair and enhanced gap locator formatting for improved patch resilience.
- Updated documentation, system prompts, and session analysis scripts to reflect the new syntax and header shapes.
2026-07-31 00:19:52 +02:00
can1357 55b23864e2 chore: update stats script with paste op 2026-07-30 23:21:40 +02:00
can1357 b238713fad style: formatted merge-pr script per biome 2026-07-30 17:07:48 +02:00
can1357 499017115f feat: added pr merge script with conventional commit validation
- Add merge script to automate local pull request merges with conventional commit validation.
- Add unit tests verifying conventional commit subject compliance and validation rules.
2026-07-30 16:14:50 +02:00
can1357 7b0780028f style(scripts): quoted the empty CDPATH assignment in link-omp.sh
`CDPATH=` already cleared the variable for the `cd` subshell, so this is
a readability-only change: `CDPATH=''` is the identical POSIX assignment
written with explicit empty quotes. No behavior change, and there was no
CDPATH leak to fix.
2026-07-28 10:22:57 +02:00
can1357 ed4c78bc0f feat: streamlined native addon builds and caching in ci workflows
- Enhance CI workflows to build and reuse native addon artifacts instead of recompiling.
- Update bazel cache actions with selective backend detection and separate remote and disk modes.
- Add `--source` CLI option to install prebuilt native targets without requiring Bazel.
- Increase Kata runner memory configuration from 12Gi to 24Gi.
2026-07-28 02:06:13 +02:00
can1357 3d9f28dd46 refactor: resolved cross-platform build warnings and add windows-sys features
- Add conditional attributes to silence dead-code warnings on platform-specific code and fields.
- Update target dependencies in pi-walker/Cargo.toml with explicit windows-sys feature sets.
- Simplify time cast expressions in linux_reflink and rcopy modules.
2026-07-27 17:04:52 +02:00
can1357 d16a251777 chore: reorg tests 2026-07-27 16:43:53 +02:00
can1357 8facd237d5 feat(build): migrated native pipeline to bazel with remote caching
- Replaced the napi-cli/cargo-zigbuild/cargo-xwin/sccache build path with
  Bazel: rules_rust + crate_universe over Cargo.lock, hermetic zig cc
  toolchains (linux-gnu pinned to glibc 2.17, linux-musl), host Xcode for
  darwin, and a repo-local hermetic clang-cl + llvm-ml + xwin toolchain for
  windows-msvc (bazel/toolchains/msvc).
- All eight shipped addons build as //:natives-<target> via the release
  transition in bazel/defs.bzl (opt, thin LTO, cgu=16, stripped, canonical
  .node naming); scripts/bazel-natives.ts is the single driver for local
  dev and CI.
- Rust validation moved to bazel test + clippy aspects (strict workspace
  policy for opted-in crates, default lints elsewhere, mirroring cargo
  semantics) and the rustfmt aspect; cargo stays as the dev-iteration
  surface, with brush-core/brush-builtins promoted to workspace members
  and excluded from cargo dev tasks to keep their historical scope.
- CI caches through an in-cluster bazel-remote action cache (TLS + basic
  auth, cluster-internal only); GitHub-hosted runners never touch the
  infrastructure and use an actions/cache-backed disk cache instead.
- Deleted the hand-rolled caching machinery: ci-target-cache,
  ci-native-artifact-cache, ci-build-native, native-source-hash,
  find-native-artifacts, restore-linux-native, native-prewarm workflow,
  ensure-* toolchain actions, and all sccache/Swatinem wiring.
- Warm native rebuilds drop from ~20 minutes to seconds; a cold client
  with a warm remote cache rebuilds the linux x64 pair in ~2.5 minutes.
2026-07-27 12:22:19 +02:00
can1357 5f988a8270 ci: configured native artifact caching and parallel execution in ci workflows
- Enhanced CI workflows and GitHub actions to support native artifact caching and parallel builds.
- Added composite actions and scripts for computing sources, finding artifacts, and managing caches.
- Updated infrastructure documentation and runner deployment scripts with revised resource limits.
2026-07-27 07:53:28 +02:00
can1357 f8dbb3669f feat(utils): implemented windows shell resolution for bash execution
- Added resolveWindowsShell to locate Git Bash, scoop installs, and path binaries with a fallback to cmd.exe.
- Updated bash-executor to prevent wrapping user commands in cmd.exe when using fallback shell paths.
- Updated installation script to report optional shell status rather than failing when bash is absent.
2026-07-26 20:27:16 +02:00
usr-bin-roygbiv 9ceebb2a4d fix(workers): isolate compiled host selectors 2026-07-25 08:31:54 +00:00
usr-bin-roygbiv 237692deab fix(computer-use): re-enter single worker host 2026-07-25 07:45:56 +00:00
usr-bin-roygbiv a7e988b604 fix(computer-use): isolate worker process entry 2026-07-25 07:13:12 +00:00
can1357 59619623e1 feat: enabled cargo target caching and conditional validation in workflows
- Add scripts/ci-target-cache.ts to snapshot and restore Cargo target directories to S3 storage on omp-kata runners.
- Update .github/actions/build-native/action.yml to support target cache restoration, saving, and compiler launcher configurations.
- Add skip_validation input in GitHub workflow actions to bypass clippy and Rust test checks on release runs.
2026-07-25 02:34:14 +02:00
can1357 0babb55fbd ci: retried test chunks when bun crashes due to GC bugs
- Detect bun crash exits (signals 132-139) and retry up to MAX_CHUNK_ATTEMPTS in a fresh heap.
- Add `retries` field to ChunkOutcome and surface crash retries in progress output.
- Fix test assertion expecting `stopReason: "aborted"` to use `toolUse` (aborted turns are dropped from context).
2026-07-23 14:40:28 +02:00
can1357 7d404686c2 chore: updated changelogs + remove summarization marker 2026-07-22 23:59:32 +02:00
can1357 59877a01bd fix(update): fetch musl release asset on musl hosts and align musl release test
- omp update's getBinaryName now detects a musl Linux host (Alpine release file or /lib/ld-musl-* loader, mirroring scripts/install.sh) and downloads omp-linux-musl-<arch>, so self-update no longer replaces a musl install with the glibc build.
- Updated musl-release dry-run assertions to the Bun.build output format the binaries script now emits; promoted the musl changelog entry to [Unreleased].
2026-07-22 23:12:24 +02:00
can1357 6a517cfbbc Merge farm/b12a11bd: feat(release): add musl-linked linux builds
# Conflicts:
#	package.json
2026-07-22 23:08:42 +02:00
can1357 8a9aa0342d chore: format evaluator fix commits and suppress intentional DAP placeholder lint 2026-07-22 21:16:38 +02:00
can1357 b5b645c921 fix(installer): fall back to /usr/sbin/sysctl when sysctl is not on PATH 2026-07-22 21:12:20 +02:00
can1357 87e55d10d7 Merge PR #6269: fix(installer): avoid mismatched bun architecture on apple silicon (@roboomp) 2026-07-22 21:12:20 +02:00
can1357 945ccf4bb0 fix(release): only fingerprint source bullets consumed by summarization
Recording fingerprints for bullets the model preserved verbatim made the
next runChangelogFixer pass (release.ts step 5) treat the still-valid
Unreleased bullet as already consumed and drop it from the release notes.
Record after applyRewrite and skip items whose exact text survives in the
rewritten section; add a verbatim-keep regression.
2026-07-22 21:12:20 +02:00
can1357 91a5364fb8 Merge PR #6232: fix(release): preserve changelog source fingerprints (@roboomp) 2026-07-22 21:12:20 +02:00
roboomp 6efcdfb66e feat(release): added musl-linked linux builds
Built x64 and arm64 musl release artifacts with matching native addons, Alpine smoke coverage, and installer detection.

Fixes #3367
2026-07-22 19:06:20 +00:00
roboomp 329db086f4 fix(installer): avoid mismatched bun architecture on apple silicon
The default install path only checked whether bun existed, so an
x86_64 bun running under Rosetta installed an x86_64 omp on Apple
Silicon (AVX warning, ~11s startup). Compare bun's process.arch to
the host, detecting Apple Silicon via `sysctl -in hw.optional.arm64`
so Rosetta can't spoof it, and fall back to the prebuilt native
binary on mismatch; `--source` now errors actionably. install_binary
also derives the arch from the real host instead of the
Rosetta-translated `uname -m`.

Fixes #6268
2026-07-22 07:11:40 +00:00
Victor Araújo ad36bbeae3 test(ci): run release publish coverage 2026-07-22 00:58:29 -03:00