Commit Graph

8953 Commits

Author SHA1 Message Date
roboomp 4d9f9d9edf fix(ci): aggregated release notes across silent intervening tags
scripts/ci-release-notes.ts previously extracted only the single
target-version section, so changelog entries finalized under tags pushed
without a GitHub Release (e.g. v15.12.5 and v15.12.6 — collateral from
the pre-#2564 release-cancellation bug) were stranded out of the next
published release body.

The generator now walks the range (latest-published-release, target],
resolved via 'gh release list', and merges every in-range '## [X.Y.Z]'
section per package — grouped by '### <category>' with bullet-level
dedup so post-release changelog flattening cannot surface the same
entry twice. Versions iterate newest-first so newer phrasing wins on
dup resolution, and categories are sorted into the canonical
Breaking/Added/Changed/Fixed/Removed order regardless of source order.

Falls back to legacy single-version extraction when 'gh' is unavailable
or no prior published release resolves (safe no-op);
'OMP_RELEASE_NOTES_FLOOR=v15.12.4' overrides the lookup for manual
re-runs (empty string forces legacy mode).

Adds scripts/ci-release-notes.test.ts covering: range inclusion above
floor, target-inclusive boundary, dedup of bullets flattened forward
into multiple versions, canonical category ordering, the null-floor
legacy fallback, empty version sections skipped, and no empty-category
emission when dedup drains a bucket. Wired into 'bun run test:scripts'.

Fixes #2596
2026-06-14 23:36:19 +00:00
can1357 a6aa0c4ae8 fix(actions): fixed runner tooling setup and version parsing
- Updated Rust toolchain checks to use a prefix-aware grep pattern when validating installed components.
- Simplified the Zig installer action to extract into ~/.local and add the archive directory directly to PATH.
- Adjusted runner checks to parse sccache and gh version output via positional shell fields for stability.
2026-06-15 01:15:25 +02:00
can1357 551c599672 feat(infra): added infra automation for runner, cache, and kata runtime operations
- Enabled containerd-first runner builds with auto backend defaults, tool bootstrap, and docker fallback.
- Added RustFS cache maintenance report/prune modes with S3-driven listing, cache key grouping, and threshold exits.
- Added kata runtime tuning automation via SSH that patches config, runs smoke tests, and cleans up resources.
- Expanded runner-image smoke checks to verify clang, lld, sccache, zig, and cargo-* requirements.
2026-06-15 01:08:06 +02:00
can1357 ff5b06d0c2 ci: added CI workflows and actions for pinned toolchain-native builds
- Added composite GitHub actions to ensure rust toolchains and cargo helpers.
- Added a kata-native build action with variant checks and platform artifact uploads.
- Reworked CI matrices to split native cross-platform jobs and gate releases accordingly.
- Updated runner bootstrap and image to preinstall pinned build tools for CI consistency.
2026-06-15 01:01:45 +02:00
can1357 198b1cdec2 fix(ci): close bun-install cache backend branch
The backend-detection shell block in .github/actions/bun-install/action.yml was missing its closing fi, so every job that touched the composite failed immediately with . Restore the RustFS/GHA branch correctly and validate with YAML parse + bash -n.
2026-06-15 01:00:19 +02:00
can1357 37d356f7bc test(mnemopi): centralized embedding test gating through shared Bun setup
- Added a Bun test preload config in packages/mnemopi/bunfig.toml to run shared setup automatically.
- Moved embedding opt-out logic into test/setup.ts, using EMBEDDINGS=1 to enable embeddings and defaulting MNEMOPI_NO_EMBEDDINGS otherwise.
- Updated embedding-focused tests to import RUN_EMBEDDINGS and skip suites unless embeddings are enabled.
2026-06-15 00:58:26 +02:00
can1357 f4e11db5b8 feat(infra): added kata-based ARC CI docs and reload tooling for k3s
- Added k3s host and cluster setup docs, including pinned install, module checks, and readiness commands.
- Added kata-runtime setup docs with containerd integration, RuntimeClass, and guest-kernel validation steps.
- Added ARC ARC/runner-and-cache deployment docs covering helm values, secrets, and pod network policy.
- Added reload-runner automation and a preloaded runner image Dockerfile with pinned toolchain and rollout checks.
2026-06-15 00:52:47 +02:00
can1357 82871093bd ci(actions): skipped bun setup and rust-cache on shared-sccache runners
- Updated the bun-install composite action to detect preinstalled Bun and only fetch it when missing.
- Added cache-backend detection and wiring so Bun dependencies use RustFS cache when SCCACHE credentials are present.
- Conditionally skipped rust-cache in build-native and CI jobs when shared sccache runners are available, relying on the existing RustFS/sccache layer instead.
2026-06-15 00:52:32 +02:00
can1357 96fd08200d ux(coding-agent/modes): adjusted model menu layout to use a bounded scrollable option window
- Collapsed the model list while the role/action menu is open and restored it when the menu closes.
- Limited rendered menu options to a terminal-derived visible window centered around the selected item.
- Added overflow handling via ScrollView with dynamic width and scrollbar when the option list exceeds available rows.
2026-06-15 00:30:28 +02:00
can1357 5959bb0ad3 test(mnemopi): disabled embeddings in mnemopi tests
- Added beforeEach and afterEach hooks in mnemopi tests to set and clear MNEMOPI_NO_EMBEDDINGS so embeddings are skipped during those runs.
- Updated the bun-install cache script to archive only node_modules paths that exist as directories.
2026-06-15 00:29:24 +02:00
can1357 0d29c349ad feat(coding-agent): normalized generated titles to title case
- Applied title-casing to `normalizeGeneratedTitle` outputs using a new internal helper.
- Adjusted tiny text and title generator tests to assert the new title-cased results.
2026-06-15 00:28:08 +02:00
can1357 5a910863c3 feat(coding-agent): added hidden title role for prioritized title model selection
- Added a new built-in `title` model role with `hidden` metadata and updated role definitions and schema.
- Updated title generation to resolve models in `title`, `commit`, then `smol` order and added test coverage for that precedence.
- Filtered hidden roles from selector badges and documented the new built-in role in model/settings docs.
2026-06-15 00:23:29 +02:00
can1357 c7564f4e57 feat(coding-agent/prompts): strengthened benchmark prompt for exhaustive join-cost analysis
- Updated the default `omp bench` prompt text to emphasize full-spectrum reasoning before answering.
- Required explicit enumeration of all four-table join orders with cost comparisons across nested-loop and hash joins plus index-scan versus full-scan tradeoffs.
- Expanded the changelog rationale to document sustained deliberation and exhaustive costing to avoid short-circuit benchmark responses.
2026-06-15 00:19:23 +02:00
can1357 2be8256af0 ci(workflows): shared bun caching in CI via backend-aware install action
- Updated CI dependency install flow to share bun cache orchestration across jobs.
- Added RustFS-backed bun cache restore/save script keyed by bun.lock hash.
2026-06-15 00:18:43 +02:00
can1357 173e9829ab chore(scripts): scrubbed cloud credentials from CI test command environment
- Added explicit environment variable blacklists for credential and cache-related prefixes and names used by CI test runs.
- Added a helper that also strips provider API, OAuth, and bearer token variables by pattern.
- Updated test command spawning to pass a filtered environment, making suites run without inherited secret credentials.
2026-06-15 00:14:45 +02:00
can1357 be9659abb0 feat(coding-agent/prompts): replaced default benchmark prompt with concrete planning task
- Updated the benchmark prompt to request a concrete, schema-driven query-optimization walkthrough with explicit selectivity, cardinality, join-order, and operator-cost calculations.
- Adjusted the output constraints to require plain-paragraph analysis output with no headings, lists, code fences, or tables.
- Documented the default benchmark prompt replacement in the package changelog under the Changed section.
2026-06-15 00:13:52 +02:00
can1357 06bca1f0f5 Merge remote-tracking branch 'origin/farm/0bc93ae0/kokoro-onnxruntime-version-error' 2026-06-15 00:02:24 +02:00
roboomp 165dd43405 style: bun run fix 2026-06-14 21:56:58 +00:00
roboomp d7d94949fa fix(tts): isolated kokoro onnxruntime loading
Loaded Kokoro's side-installed transformers runtime by absolute path before requiring kokoro-js, avoiding host/workspace onnxruntime libraries in the worker process.

Kept runtime-cache bare module requests inside the registered runtime cache when the parent module is already inside that cache, and covered the resolver boundary with a regression test.

Fixes #2591
2026-06-14 21:56:50 +00:00
can1357 a01c0e699e docs(natives): changelog the /proc children fallback fix 2026-06-14 23:36:05 +02:00
can1357 880983c0d8 style(pi-shell): apply rustfmt to children fallback 2026-06-14 23:31:19 +02:00
can1357 f41b1e35f3 fix(pi-shell): scan /proc for children when CONFIG_PROC_CHILDREN is absent
Some Kata/microVM guest kernels (e.g. the CI runner's 6.18.x) are built
without CONFIG_PROC_CHILDREN, so /proc/<pid>/task/<tid>/children does not
exist. The Linux children() relied on it with no fallback, making
children()/live_descendants() return empty and silently turning shell
cancellation cleanup into a no-op inside such containers.

Fall back to scanning /proc and grouping by parent pid (the same primitive
the macOS path already uses) when no children file is readable; kernels
with the file keep the cheap per-task fast path. Also fixes
process::tests::descendants_includes_freshly_spawned_child under Kata CI.
2026-06-14 23:24:03 +02:00
can1357 72f76280c9 test(pi-shell): tolerate PID-namespaced getsid(0) in session tests
Same containerized-CI issue as the pi-natives wrapper test: in a PID
namespace the host process's session leader lives outside the namespace,
so getsid(0) returns 0 (not -1). Relax the host_sid > 0 sanity asserts in
embedded_external_command_runs_in_its_own_session and
embedded_pipeline_stage_runs_in_its_own_session to host_sid >= 0; the
child-session invariants (own session, distinct from host) are unchanged.
2026-06-14 23:24:03 +02:00
can1357 6d8bd80392 ci(workflows): share rust sccache via in-cluster RustFS S3 on self-hosted runners
Self-hosted omp-kata runners now inject a shared S3 (RustFS, in-cluster)
sccache backend via pod env (SCCACHE_BUCKET/ENDPOINT/REGION + AWS creds).
The Enable-sccache step branches on SCCACHE_BUCKET: when set, sccache reads
the S3 config from the inherited environment; otherwise GitHub-hosted
runners (macOS, ubuntu-arm) keep the GHA cache backend since they can't
reach the private RustFS.
2026-06-14 23:07:54 +02:00
can1357 3f5cc41f91 test(pi-natives): tolerate PID-namespaced getsid(0) in session test
Inside a container PID namespace (the Kata microVM CI runner), the host
process's session leader lives outside the namespace, so getsid(0) returns
0 via task_session_vnr — not an error. The assert host_sid > 0 was too
strict and panicked with 'getsid(0) failed: Success (os error 0)'. Relax
to host_sid >= 0 (only -1 is a real failure); the meaningful invariant
(child detaches into its own session: child_sid == child_pid, distinct
from host) is unchanged.
2026-06-14 23:07:53 +02:00
can1357 3843a86df9 ci(workflows): updated CI job labels and removed fast test dependency
- Renamed the coding-agent native job and bucket names from tooling to unit in CI.
- Removed test_coding_agent_fast from the release job dependency list and gating condition.
2026-06-14 22:40:21 +02:00
can1357 b8e4da23d0 ci(ci): refactored CI setup and test-state isolation for coding-agent workflows
- Added a setup-system-deps action with preloaded-runner guards and apt fallbacks.
- Updated CI workflows to download Linux x64 native artifacts and gate on native job success.
- Renamed coding-agent fast mode to singleton in scripts and test partitioning logic.
- Added settings test-state begin/restore helpers with recursive cleanup in affected tests.
2026-06-14 22:37:05 +02:00
can1357 932de0a1dd test(coding-agent): updated test import path and removed stale ffmpegAssetName tests
- Changed helper tests to import TempDir from @oh-my-pi/pi-utils/temp.
- Removed the obsolete ffmpegAssetName test file under tools-manager.
2026-06-14 22:02:03 +02:00
can1357 a734c29234 ci(scripts): reworked CI test execution with mode-based TypeScript buckets
- Added a mode-based `ci-test-ts.ts` runner with `--dry-run` support.
- Partitioned coding-agent tests into fast/ui/runtime/native/heavy buckets and separated workspace/native runs.
- Added coding-agent bucket modes that fail CI when a target bucket has no matching tests.
- Updated CI scripts/workflow to run the new TS buckets, use `omp-kata`, and gate releases on them.
2026-06-14 21:55:55 +02:00
can1357 77ea88e436 fix(coding-agent): fixed crashes when system prompts were provided as strings
- Normalized agent `setSystemPrompt` to wrap string inputs into one-item arrays.
- Updated session creation to accept string `systemPrompt` values and normalize callback or direct results to string arrays.
- Adjusted extension result handling and test fixtures to accept string `systemPrompt` and missing `assistant_message` fields without crashing.
2026-06-14 21:53:24 +02:00
can1357 572b06f406 fix(coding-agent/modes): fixed collapsed streaming tool previews from dropping head rows
- Updated ToolExecutionComponent.isTranscriptBlockCommitStable to return true when a tool result exists, so streaming results are treated as commit-stable.
- Limited provisionalPendingPreview handling to the pending call phase so only pre-result previews remain non-committed, preventing collapsed streams from dropping their top rows.
2026-06-14 21:43:42 +02:00
can1357 afc93111a8 test: ditto 2026-06-14 21:13:17 +02:00
can1357 00739815cf test: ditto 2026-06-14 21:07:18 +02:00
can1357 b235382edf test: f it 2026-06-14 20:55:43 +02:00
can1357 30ce98a8b4 test(coding-agent): cap test parallelism to 2 workers
Confirmed root cause of the CI test hang: bun --parallel spawns one isolated
worker per core, and each worker loads the 116MB pi-natives addon plus a large
JS heap. On the 16GB hosted runner that exceeds memory, triggering swap thrash
(100s+ event-loop stalls, transient file-read failures) that looks like a hang.
Capping to 2 workers keeps per-file memory recycling (isolation) while halving
peak memory so it fits the runner.
2026-06-14 20:45:37 +02:00
can1357 8d9878161f chore: update changelogs 2026-06-14 20:44:56 +02:00
roboomp e7c5f5f979 fix(changelog): restored ai release sections
Moved the AI changelog entries flattened by the previous fix run back under their released 15.x headings, leaving the package Unreleased section empty for this PR.
2026-06-14 20:44:45 +02:00
roboomp 1d931506d6 fix(changelog): preserved released sections during auto-fix
Restored the released coding-agent changelog sections that the previous pre-publish fix run flattened into Unreleased. The local checkout only had tags through v15.5.15, so fix-changelogs compared against an old tag and promoted entire newly-added release sections.

- Kept newly-added release-section hunks out of collectPromotableAddedItemLines so the fixer still promotes individual new items added under an existing released section, but does not rewrite whole release blocks.
- Added regression coverage for the release-section case.
- Restored the coding-agent changelog history and kept only the #2582 entry under Unreleased.

Fixes #2582
2026-06-14 20:44:45 +02:00
can1357 afc4f3c1fe Merge pull request #2581 from camopy/codex/avoid-placeholder-crash-before-theme-init
fix(coding-agent): avoid placeholder crash before theme init

Resolved CHANGELOG conflict: 15.13.0 was re-opened into [Unreleased] on
main, so the fix entry goes under the existing [Unreleased] Fixed section
rather than resurrecting the released 15.13.0 heading.
2026-06-14 20:44:03 +02:00
can1357 5da4ab6085 Merge remote-tracking branch 'origin/farm/ed9bea08/isolate-settings-parallel-tests' 2026-06-14 20:35:38 +02:00
roboomp d142652fbe style: bun run fix 2026-06-14 18:26:27 +00:00
roboomp 805fbfbad8 fix(coding-agent): isolated parallel-test races on the Settings singleton
Two CustomEditor/streaming-preview tests timed out under bun test --parallel
because they reset+reinitialised the process-global Settings singleton in
beforeEach. 50+ other test files do the same dance, so under parallelism the
proxy points at whichever instance won the latest race rather than the one
under test (issue #2582).

- Added CustomEditor#magicKeywordsEnabledOverride: an instance-level test/host
  injection that short-circuits the global lookup at the read site.
  Production wiring still reads from Settings.
- Switched the magic-keyword shimmer-disabled test to set
  magicKeywordsEnabledOverride directly instead of mutating the singleton.
- Removed the gratuitous reset+init from the 'streaming tool call preview
  height (bounded across renderers)' describe -- bash/ssh/eval pending
  previews never read settings.*; only initTheme() (idempotent) is kept.

Fixes #2582
2026-06-14 18:26:20 +00:00
can1357 687487385b test(coding-agent): drop tts/stt worker tests; harden timing-bound tests
The tts/stt suite spawns sherpa-onnx worker subprocesses that hang on the
headless CI runner (zero-output stall → SIGTERM), and the resulting event-loop
starvation tipped real-time TUI tests (streaming-preview, custom-editor shimmer,
ask timeouts) past bun's 5s default. Remove the tts/stt tests and give the
timing-sensitive tests an explicit 30s timeout.
2026-06-14 20:18:09 +02:00
Paulo Camopy bf345d9920 fix(coding-agent): avoid placeholder crash before theme init 2026-06-14 14:45:25 -03:00
can1357 729521b757 fix(collab-web): pin app grid to a single minmax(0,1fr) column
A long session title set the grid column's min-content floor, forcing the
header, transcript, and composer wider than narrow/in-app mobile viewports
and clipping text on the right edge. Pin the single column to the container
width so the title ellipsizes instead of widening every row.
2026-06-14 19:22:18 +02:00
can1357 c362976ac5 test(coding-agent/core): consolidated python executor session lifecycle tests
- Added a lifecycle test case verifying executePython retries execution with a fresh kernel when the prior session kernel dies during run.
- Removed the now-redundant python-executor-session.test.ts file that defined session lifecycle tests.
2026-06-14 19:04:18 +02:00
can1357 73f2dbc3b5 ci(workflows): isolated manual workflow_dispatch runs in release concurrency groups
- Updated the CI workflow concurrency rules to treat `workflow_dispatch` like a release path, grouping those runs by SHA and disabling cancel-in-progress.
- Extended the `GhaEval` expression evaluator in `scripts/ci-concurrency.test.ts` to support `==`/`!=` and align falsy checks.
- Added a regression test covering tagged-main `workflow_dispatch` runs using the release-style concurrency behavior.
2026-06-14 19:04:05 +02:00
can1357 31138bf7ec test(python/robomp): added cleanup guards to queue cancel and shutdown tests
- Wrapped queue shutdown and cancel test assertions in `try`/`finally` blocks.
- Cancelled and awaited worker and in-flight tasks in finalizers to prevent lingering background tasks.
- Handled expected `CancelledError` exceptions during task cleanup with `suppress`.
2026-06-14 19:03:58 +02:00
can1357 6325de72f8 test(coding-agent): drop flaky task pending preview height test 2026-06-14 19:03:29 +02:00
can1357 f6539a07bc Merge remote-tracking branch 'origin/farm/d1eaf85c/pin-minimax-m3-context' 2026-06-14 19:02:28 +02:00