Skip to content

Bulka iteration: Strudel sync, English version, statistics, full MCP, desktop for Windows/Linux/macOS - #187

Merged
timoncool merged 19 commits into
mainfrom
bulka-iteration
Oct 11, 2026
Merged

timoncool merged 19 commits into
mainfrom
bulka-iteration

Conversation

@timoncool

Copy link
Copy Markdown
Owner

What

  • Strudel sync with Codeberg (strudel-sync, upstream d97e91e92); reference: doc.en.json from the engine, Russian doc.json carried over by pnpm doc-ru; changelog script and tests fixed.
  • Dependencies updated (Astro, React, Tauri 2 + plugins, Node sidecar 24.21.0).
  • English version under /en/: upstream docs as originals, Bulka pages and blog translated, interface strings through t() with a parity test, the agent answers in the page language.
  • Statistics with consent and hub news on the site and in the desktop app (Studio Hub, report format of the studios' client, nothing counted before the person chooses); README section.
  • MCP: 49 tools, every window capability, each one called.
  • Desktop for Windows, Linux and macOS: per-OS shell (bundled node, data dirs, error dialog when the server does not start, updates in place or the releases page, statistics flushed before the window closes, node exits with the shell), Linux AppImage + .deb in Docker (Ubuntu 22.04, glibc check), workflow macOS build (workflow_dispatch, tag), latest.json for windows-x86_64, linux-x86_64, darwin-aarch64.
  • Fixes found on the way: WAV export in WebKit (Safari, Linux, macOS), MCP calls while the window reconnects, export before the first click hanging, recording save crashing the server without xdg-open, closing waiting 8 s, trailing whitespace in synced docs.

Checks

npx vitest run (1107), pnpm lint, pnpm format-check, pnpm --filter website build, bash desktop/build.sh (Windows), desktop/build-linux-docker.sh (AppImage started under WSLg, MCP answered from the window), git diff --check.

The macOS build can be dispatched once this is on main (GitHub runs workflow_dispatch only from the default branch); the repository variables it needs are set. Nothing deployed or released.

…ммной записи

Индикатор REC (огонёк + таймер) жил в локальном стейте компонента Recorder, поэтому при
записи через тулзы/MCP/.record() не загорался — только при клике по кнопке. Ввёл общий
nanostore $isRecording/$recordingElapsed (recordingState.mjs) c обёртками beginRecording/
endRecording — единственная точка старта/стопа. Кнопка REC, тулзы (start/stop/recordSeconds)
и метод .record() теперь идут через него → индикатор одинаково загорается независимо от
источника. (Остальные действия агента — play/stop/setCode/highlight — и так шли через editor.*,
тот же объект, что у UI, поэтому отражались.)

Копится в main, отдельный релиз не делаем.
… re-anchor, ESM .mjs; backfill Dec 2025 - Oct 2026
…; translate 31 new Strudel functions; tests run with vitest run, isolate setDefaultJoin, restore midikeys mock, drop broken growlist doc
…ignals, samples headings; fix samples anchors and hardcoded bulka.app link; rebuild docs index
…, Tauri 2.12 (CLI+crates); drop 9 unused deps (ai, @ai-sdk/*, zod, hs2js dup...); pnpm 11 allowBuilds mirrors upstream onlyBuiltDependencies
… MDX that prettier's MDX1 parser corrupts); masterVolume NaN when unset; vite glob query raw
…s leaked disk paths; Russian headings; likes/publicity/clearAll/pagination errors surfaced; share link from desktop points to bulka.app; recordings never overwrite; Helix keys, block eval, prebake editor from upstream; agent search covers function reference
…, share, feed, volume, undo, export WAV, samples, prebake, settings, AI provider, panel, reference, recordings); playMusic reports code errors and locked audio; restore lost selectText/getSelection
…, sync script), Bulka pages translated (20), UI dictionary ru/en with parity test, English reference and agent search, blog/RSS/feed/whatsnew per language, language switch in REPL and docs, hreflang; fixes: RU blog dates, RSS titled Strudel, /workshop redirect, false feed TOC, hydra/api link, outdated agent/community/themes facts
… desktop — Rust-client report format (scrub, limits, cascade), first-run consent panel and settings toggle with preview, counters for pattern runs, recordings, exports, shares, agent replies; notices.js with impressions only after consent; recording errors surfaced; README statistics and English sections
- lib.rs: bundled node per OS, resources from the bundle resource dir, data in the app data dir on Linux/macOS,
  BULKA_DESKTOP=1, an error dialog when the server does not start, updates in place or the releases page per
  install kind, statistics sent from the window before it closes (/api/desktop/flush)
- tauri.linux.conf.json (AppImage with GStreamer, .deb) and tauri.macos.conf.json
- build.sh: node of the current OS from nodejs.org with SHA-256 check, no hidden pnpm deploy failure, updater
  password from env or the secrets file
- build-linux-docker.sh (Ubuntu 22.04, glibc check), workflow macOS build, make-release.sh with latest.json
  for windows-x86_64, linux-x86_64 and darwin-aarch64
- desktop 0.3.0; desktop docs for three systems; README.md with LF line endings like the rest of the repo
…er writes to; docs index for the desktop pages
…s, exit without the 8 s wait

- superdough setAudioContext: no close() on a context without it (OfflineAudioContext in WebKit): export
  rendered and then failed in Safari and the Linux/macOS app
- MCP bus waits up to 8 s for the window instead of answering not connected at once; window
  connect/disconnect in the server log; tests
- exportWav before the first click in the window: explicit error like play and record, it hung
- desktop: node exits when the shell dies (stdin closes); the window's flush POST is JSON, Astro
  checkOrigin answered 403 and closing waited the full 8 s
…dg-open is missing (spawn error event had no handler)
@vercel

vercel Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
bulka Ignored Ignored Preview Oct 11, 2026 10:24pm UTC

@timoncool
timoncool merged commit bdbe980 into main Oct 11, 2026
3 checks passed
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.

1 participant