Commit Graph

1786 Commits

Author SHA1 Message Date
Anso 6f1b2cfa9c chore(main): release 0.2.2 (#98) 2026-03-24 21:28:19 -04:00
Anso dd5b698b3f fix(editor): ESLint unused params fix
fix(editor): ESLint unused params fix
2026-03-24 20:00:07 -04:00
Anso 34172a9922 fix(editor): remove unused params from getWorker to satisfy ESLint
fix(editor): remove unused params from getWorker to satisfy ESLint
2026-03-24 19:59:56 -04:00
SaelixCode 59290e9e9d fix(editor): remove unused params from getWorker to satisfy ESLint 2026-03-24 19:59:51 -04:00
Anso fd387733f6 chore(release): release v0.2.1
chore(main): release 0.2.1
2026-03-24 19:47:19 -04:00
Anso 7aac99abdf chore(main): release 0.2.1 2026-03-24 19:46:44 -04:00
Anso 36a9bf3109 fix(editor): Monaco CSP fix + release pipeline fixes
fix(editor): Monaco CSP fix + release pipeline fixes — v0.2.1
2026-03-24 19:46:33 -04:00
Anso 0eaa45bd7f fix(editor): bundle Monaco locally to fix stuck Loading state
fix(editor): bundle Monaco locally to fix stuck Loading state
2026-03-24 19:46:16 -04:00
SaelixCode 79fde6e2bd fix(editor): bundle Monaco locally to fix stuck Loading state and CSP block
- Add monaco-editor to frontend deps and configure @monaco-editor/react
  to use the local bundle via loader.config({ monaco }) instead of
  fetching from cdn.jsdelivr.net (blocked by CSP scriptSrc: self)
- Wire editorWorker via Vite ?worker syntax — blob: URLs already
  permitted by existing workerSrc CSP directive, no CSP changes needed
- fix(ci): use DOCS_REPO_TOKEN in release-please so tag creation
  cascades to docker-publish.yml (GITHUB_TOKEN cannot trigger workflows)
- fix(ci): auto-merge screenshots PR via gh pr merge --auto --squash
2026-03-24 19:43:55 -04:00
Anso fe1932e01d Merge pull request #90 from AnsoCode/release-please--branches--main--components--sencho
chore(main): release 0.2.0
2026-03-24 19:15:17 -04:00
Anso f93d5bd194 Merge pull request #87 from AnsoCode/chore/refresh-screenshots
docs: refresh screenshots
2026-03-24 19:14:53 -04:00
AnsoCode c56b244f58 docs: refresh screenshots 2026-03-24 23:08:45 +00:00
github-actions[bot] 8f7419f710 chore(main): release 0.2.0 2026-03-24 23:06:51 +00:00
Anso b6391b96ff fix(ci): release-please config corrections
fix(ci): release-please config corrections
2026-03-24 19:06:41 -04:00
Anso ea57cbe97f fix(ci): correct release-please changelog section names and tag format
fix(ci): correct release-please changelog section names and tag format
2026-03-24 19:06:31 -04:00
SaelixCode e653bc2210 fix(ci): correct release-please changelog section names and tag format 2026-03-24 19:06:19 -04:00
Anso c991b8121e feat(ci): automated versioning with release-please
feat(ci): automated versioning with release-please
2026-03-24 19:04:02 -04:00
Anso c2d5d37be4 feat(ci): add release-please automated versioning workflow
feat(ci): add release-please automated versioning workflow
2026-03-24 19:03:51 -04:00
SaelixCode c294def7cc feat(ci): add release-please automated versioning workflow 2026-03-24 19:01:09 -04:00
Anso 6cd84ba9c6 fix(ci): docker-publish tag trigger
fix(ci): docker-publish tag trigger + re-release v0.1.0
2026-03-24 18:49:11 -04:00
Anso c8047c209c fix(ci): trigger docker-publish on v* tag push instead of GitHub Release event
fix(ci): trigger docker-publish on v* tag push instead of GitHub Release event
2026-03-24 18:48:41 -04:00
SaelixCode 6c911fd67f fix(ci): trigger docker-publish on v* tag push instead of GitHub Release event 2026-03-24 18:48:21 -04:00
Anso 2c78dd4d10 Merge pull request #83 from AnsoCode/chore/refresh-screenshots
docs: refresh screenshots
2026-03-24 18:19:35 -04:00
AnsoCode 2c13d7c37d docs: refresh screenshots 2026-03-24 22:02:46 +00:00
Anso 83222157f1 release: v0.1.0
release: v0.1.0
2026-03-24 18:01:12 -04:00
SaelixCode a1b944ca14 chore(release): structure CHANGELOG for v0.1.0 2026-03-24 18:00:44 -04:00
Anso cf19390fd5 feat(docker): add linux/arm64 platform support via xx cross-compilation
feat(docker): add linux/arm64 platform support via xx cross-compilation
2026-03-24 17:56:11 -04:00
Anso 83dd6541cb docs: refresh screenshots (#81) 2026-03-24 11:34:41 -04:00
Anso 381701ee25 fix(docker): fix xx cross-compilation sysroot for native modules (#80)
* fix(docker): fix xx cross-compilation sysroot for node-pty and C++ modules

Three issues in the prod-deps cross-compilation stage:

1. xx-apk had `gcc` (C only) instead of `g++` — all three native modules
   (bcrypt, better-sqlite3, node-pty) use C++, so libstdc++ headers must
   be present in the target sysroot for xx-clang++ to link against them.

2. Missing `linux-headers` in the target sysroot — node-pty requires
   <pty.h> and <termios.h> which live in the Linux kernel headers package.

3. Missing AR=xx-ar — node-gyp uses `ar` to create static archives during
   the native build; without this override it falls back to the host ar
   (amd64), producing wrong-arch .a files that fail at the link step.

* fix(docker): use native g++ for same-platform builds, xx-clang only for cross

xx-clang introduces sysroot flags that break node-gyp header resolution on
Alpine when TARGETARCH == BUILDARCH (e.g. the docker-validate CI job which
builds amd64-only). The native path now uses the standard g++ toolchain
(identical to what worked before the xx refactor). The cross-compilation
path (amd64 → arm64) continues to use xx-clang / xx-clang++ / xx-ar with
the target sysroot populated via xx-apk.
2026-03-24 09:32:58 -04:00
SaelixCode f23d8c660d fix(docker): use native g++ for same-platform builds, xx-clang only for cross
xx-clang introduces sysroot flags that break node-gyp header resolution on
Alpine when TARGETARCH == BUILDARCH (e.g. the docker-validate CI job which
builds amd64-only). The native path now uses the standard g++ toolchain
(identical to what worked before the xx refactor). The cross-compilation
path (amd64 → arm64) continues to use xx-clang / xx-clang++ / xx-ar with
the target sysroot populated via xx-apk.
2026-03-24 09:25:06 -04:00
SaelixCode 518b0afb85 fix(docker): fix xx cross-compilation sysroot for node-pty and C++ modules
Three issues in the prod-deps cross-compilation stage:

1. xx-apk had `gcc` (C only) instead of `g++` — all three native modules
   (bcrypt, better-sqlite3, node-pty) use C++, so libstdc++ headers must
   be present in the target sysroot for xx-clang++ to link against them.

2. Missing `linux-headers` in the target sysroot — node-pty requires
   <pty.h> and <termios.h> which live in the Linux kernel headers package.

3. Missing AR=xx-ar — node-gyp uses `ar` to create static archives during
   the native build; without this override it falls back to the host ar
   (amd64), producing wrong-arch .a files that fail at the link step.
2026-03-24 09:20:09 -04:00
Anso 6338122253 docs: refresh screenshots (#79) 2026-03-24 09:19:21 -04:00
Anso 1e0014e183 fix(docker): replace QEMU npm execution with tonistiigi/xx cross-compilation (#78)
Node.js v20 uses ARMv8.1 LSE atomic instructions that the GitHub Actions
QEMU version does not support, causing SIGILL / "Illegal instruction" core
dumps when npm ci runs inside the arm64 emulated layer.

Solution: add a dedicated prod-deps build stage that runs on $BUILDPLATFORM
(amd64, native) and uses tonistiigi/xx + xx-clang to cross-compile native
modules (bcrypt, better-sqlite3, node-pty) for the TARGET architecture
without ever executing Node.js under QEMU. The final runtime stage simply
copies the pre-compiled node_modules from prod-deps.

Stage breakdown:
  xx            - cross-compilation helper (provides xx-clang, xx-apk)
  frontend-builder  - $BUILDPLATFORM, vite build (no native modules)
  backend-builder   - $BUILDPLATFORM, tsc compilation
  prod-deps         - $BUILDPLATFORM + xx-clang cross-compiles for $TARGET
  final             - TARGET platform, no compilation at all
2026-03-24 08:29:52 -04:00
Anso aecb311cbb docs: refresh screenshots (#77) 2026-03-24 08:07:37 -04:00
Anso 278f7f18d9 fix(ci): add linux/arm64 Docker build support with QEMU optimization (#76)
- Add docker/setup-qemu-action@v3 to docker-publish.yml (was missing,
  causing multi-platform builds to hang indefinitely)
- Add platforms: linux/amd64,linux/arm64 to build-push-action step
- Optimize Dockerfile with --platform=$BUILDPLATFORM on builder stages
  so TypeScript compilation runs at native amd64 speed; only the lean
  npm ci --omit=dev step runs under QEMU in the final stage, compiling
  the three native modules (bcrypt, better-sqlite3, node-pty) for the
  correct target architecture — reduces arm64 build time from 6+ hours
  to ~15-30 minutes
2026-03-24 07:50:33 -04:00
Anso b7a39ce597 docs: refresh screenshots (#75) 2026-03-24 07:27:28 -04:00
Anso 12467c3fc1 fix: add linux/arm64 platform to Docker build for ARM server support 2026-03-23 16:58:25 -04:00
Anso b25574a427 feat(ui): theme-aware sidebar logo with dark/light variants (#74)
Replace single sencho-logo.png with dark and light variants that
auto-switch based on the active theme (dark/light/auto system pref).
2026-03-23 12:11:23 -04:00
Anso a4e8dceacb Merge pull request #73 from AnsoCode/chore/refresh-screenshots
docs: refresh screenshots
2026-03-23 12:03:52 -04:00
AnsoCode 5825c0686c docs: refresh screenshots 2026-03-23 15:54:48 +00:00
Anso 119336b582 Merge pull request #72 from AnsoCode/chore/migrate-to-docs-json
chore(docs): migrate from mint.json to docs.json (Mintlify v2)
2026-03-23 11:52:38 -04:00
Anso 2379650e03 Merge pull request #71 from AnsoCode/chore/refresh-screenshots
docs: refresh screenshots
2026-03-23 08:37:55 -04:00
SaelixCode 2e69c8ec75 chore(docs): migrate from mint.json to docs.json
Mintlify v2 requires docs.json; mint.json is deprecated and causes
"docs.json not found" errors in the Mintlify dashboard editor.

Changes:
- Add docs/docs.json with v2 schema: navigation wrapped in { groups: [] },
  theme field, logo/favicon placeholder paths at /images/logo/
- Delete docs/mint.json
2026-03-23 08:36:15 -04:00
AnsoCode 719b7d73a9 docs: refresh screenshots 2026-03-23 12:12:10 +00:00
Anso aefeb7a35f Merge pull request #70 from AnsoCode/fix/sync-docs-rsync-excludes-git
fix(ci): exclude .git from rsync --delete in sync-docs
2026-03-23 08:09:51 -04:00
SaelixCode 8902f6fb4c fix(ci): exclude .git from rsync --delete in sync-docs
rsync --delete removes everything in the destination that is absent from
the source. sencho/docs/ has no .git directory, so rsync was deleting
sencho-docs/.git/ on every run. The commit step then had no git repo to
work with, giving 'fatal: not in a git directory'.

Fix: add --exclude='.git' to the rsync invocation.
2026-03-23 08:02:42 -04:00
Anso 4844e51714 Merge pull request #69 from AnsoCode/chore/refresh-screenshots
docs: refresh screenshots
2026-03-23 07:55:50 -04:00
AnsoCode 70e08f2763 docs: refresh screenshots 2026-03-23 04:36:17 +00:00
Anso 392a49e0bd Merge pull request #68 from AnsoCode/fix/ci-docs-jobs-v2
fix(ci): fix update-screenshots token and sync-docs empty-repo handling
2026-03-23 00:34:12 -04:00
SaelixCode b24863db66 fix(ci): fix update-screenshots token and sync-docs empty-repo handling
update-screenshots:
- Add pull-requests: write to job permissions (required by
  peter-evans/create-pull-request to open a PR)
- Switch checkout and create-pull-request from GITHUB_TOKEN to
  DOCS_REPO_TOKEN (classic PAT with repo scope); GITHUB_TOKEN is
  blocked from creating PRs against protected branches

sync-docs:
- Replace actions/checkout + init fallback with a single bash step that
  runs git clone and falls back to git init on failure; actions/checkout
  on an empty repo creates a .git in a broken state (no HEAD/branch),
  which the previous [ ! -d .git ] guard never caught, leaving the
  commit step with no valid working tree
- Drop --global safe.directory config (no longer needed once we own
  the git setup ourselves)
2026-03-23 00:28:47 -04:00