release: promote next to main (Node 22 CI fix + Supabase removal)#750
Merged
Conversation
Signed-off-by: Salvydas Lukosius <ss-o@users.noreply.github.com>
- Replace hardcoded ~/.zi paths with ${XDG_DATA_HOME:-$HOME/.local/share}/zi
- Update ZI[HOME_DIR]/ZI[BIN_DIR] defaults in installation and commands guides
- Update ZPFX/polaris references across plugin standard, customization,
bin-gem-node annex, syntax guide, and zi_console docs
- Replace deprecated git.io short URLs with zshell.dev equivalents
Introduces community/04_zunit/ with eight pages covering installation, test syntax, assertions, running tests, configuration, and CI integration.
Co-authored-by: ss-o <ss-o@users.noreply.github.com>
…ing section (#728) * feat(docs): add z-shell syntax highlighting * docs(community): restructure contributing section with SVG illustrations - Create community/00_contributing/ as first-priority section - index.mdx: overview with banner SVG + card grid layout - 01_getting_started.mdx: org-wide fork/branch/commit/PR guide - 02_contributing_to_zi.mdx: zi-specific contributing guide - 03_zsh_plugin_standard.mdx: moved from community root (slug preserved) - 04_contributing_docs.mdx: wiki MDX authoring and Crowdin guide - 05_project_management.mdx: absorbs project tracker + labels content - Add six SVG illustrations to static/img/svg/community/: - contributing-banner.svg: wide workflow diagram (fork→code→PR→merge) - contributing-getting-started.svg: git branch tree (120×120) - contributing-zi.svg: gear with zi logo (120×120) - contributing-plugin-standard.svg: plug/socket icon (120×120) - contributing-docs.svg: document with pen (120×120) - contributing-project-management.svg: kanban board (120×120) - Renumber community top-level: - 02_zsh_plugin_standard.mdx removed (moved into 00_contributing/) - 03_zsh_native_scripting_handbook.mdx → 02_ - 04_zunit/ → 03_zunit/ (update _category_.json position + doc link) - Fix ZUnit broken links in index.mdx, 01_installation.mdx, 04_running-tests.mdx by adding .mdx extension (forces correct file-based resolution) - Update community/index.mdx with contributing CTA section Closes: docs/project-tracker-and-labels branch (content absorbed) * feat(highlight): unified zsh/zi/zunit prism grammar with token colors - Expand zsh grammar: adds zsh-builtin (30+ builtins), zsh-expansion-flag, zsh-special-parameter, zsh-glob-qualifier alongside existing zi/zunit tokens - Simplify prism-include-languages.ts to swizzle delegation pattern - Add comprehensive CSS token palette (9 token types, light + dark themes) - Fix dead link in zsh_startify.mdx (z-shell/zsh-startify repo is gone) - Migrate 44 MDX files from shell to zsh/zi/zunit language fences * fix(docs): remove dead links to non-existent GitHub repositories - ecosystem/plugins/zsh_startify.mdx: remove link to z-shell/zsh-startify (404) and remove FontAwesome icon from heading (FA kit removed from wiki) - community/gallery/collection/06_plugins.mdx: remove hyperlink from zsh-startify heading (repo no longer exists) - community/00_contributing/index.mdx: fix broken CODE_OF_CONDUCT link (z-shell/zi repo has no CODE_OF_CONDUCT.md) — use contributor-covenant.org - community/00_contributing/02_contributing_to_zi.mdx: fix same broken CODE_OF_CONDUCT link; remove link to z-shell/community guidelines (repo 404) * feat(highlight): implement zsh/zi/zunit prism grammar and token CSS - z-shell-languages.ts: rewrite grammar using named capture groups for ESLint prefer-named-capture-group compliance; expand zsh-builtin list to 50+ builtins; rename zsh-keyword → zsh-builtin; add zsh-expansion-flag token; reorganize insertBefore calls for correct priority ordering - prism-include-languages.ts: replace manual additionalLanguages loop with clean swizzle delegation to @theme-original/prism-include-languages - custom.css: add 9-token semantic color palette (light + dark) for zsh-builtin, zsh-expansion-flag, zsh-special-parameter, zsh-glob-qualifier, zi-command keyword, zi-command subcommand function, zi-ice, zunit-command, zunit-directive, zunit-assertion; uses CSS custom properties and nested rules * fix(docs): fix admonition titles and lychee exclusion - Convert space-separated admonition titles to bracket syntax (MDX v3 requirement): :::note Title -> :::note[Title] in 4 files - Add z-shell/zsh-startify to lychee exclude list — repo is archived/removed and is referenced in existing docs on the target (next) branch; Trunk checks both PR and base versions, causing false CI failures * fix(ci): correct build-script for compressed-size-action The action prepends 'pnpm run' to the build-script value, so passing 'pnpm build:en' ran 'pnpm run pnpm build:en' — a non-existent script. Change to the bare script name 'build:en' so the action runs 'pnpm run build:en' correctly. * fix(highlight): correct CSS selector and override inline Prism theme colors prism-react-renderer applies inline style="color:..." to token spans using the Dracula/GitHub theme's alias colors, which beats plain CSS rules. Two fixes: - Selector: token colors were targeting <code> but Docusaurus puts language-* on <pre>; change to pre.language-* selectors. - Override: add !important to all custom token color declarations so they win over the inline styles. Also migrate z-shell/community membership links to z-shell/.github (community repo is private; .github has the same 05_membership.yml template and public issues enabled). * fix(highlight): flatten CSS selectors — Docusaurus pipeline strips CSS nesting Nested rules inside :is() and block selectors were mangled by the build, producing invalid CSS like `.language-zsh,...) .token.zsh-builtin` with the `pre` and `:is(` prefix stripped. Flattened all token color rules to standard descendant selectors which the pipeline processes correctly. * fix(highlight): expand zi/zunit grammar coverage zi-command: add light-mode, self-update, cdreplay, cdlist, status zi-ice: add compile, eval, extract, has, if, nocd, sbin, svn (all appear in ecosystem/docs pages but were tokenized as plain text) zunit-command: broaden pattern from strict lookahead to match bare zunit and any subcommand/flag, using lookbehind for boundary * feat(docs): redesign four landing pages with banner SVGs and card grids Each page now matches the contributing page pattern: - Full-width 720×140 banner SVG illustrating the section topic - :::info/:::tip admonition with key links or quick facts - CSS grid of cards (icon + title + description + arrow link) Pages updated: docs/, ecosystem/, community/, community/zunit/ SVGs created: docs-banner, ecosystem-banner, community-banner, zunit-banner All card links verified against actual built URLs. * fix(highlight): fix zi-command compound selector and zi-ice token priority prism-react-renderer v2 renders `inside` tokens as compound classes on the same span, not nested spans — fix CSS to use .token.zi-command.keyword instead of descendant .token.zi-command .token.keyword. Move zi-ice insertBefore to fire before zsh-builtin so ice modifiers like 'wait' and 'src' are not mis-tokenized as shell builtins in zi blocks. Also redesign docs/ecosystem/community/zunit banner SVGs with distinct color palettes (blue/amber/purple/teal-red) so each section has a unique visual identity. * fix(docs): remove zsh-startify — plugin not under z-shell org Remove ecosystem/plugins/zsh_startify.mdx (was draft: true) and the corresponding gallery entry in 06_plugins.mdx. The plugin is hosted under a third-party org that we do not reference in Z-Shell docs. --------- Co-authored-by: ss-o <ss-o@users.noreply.github.com>
Re-pinned every action (workflows + .trunk/setup-ci) to verified release SHAs; fixes Trunk Check + CodeQL failing at job setup. Closes #738.
…oundaries (#736) Reconciles the divergent docs/maintainers vs community/maintainers duplicate (kept canonical SB_SECRET_KEY copy), moves it to community/10_maintainers/, and hardens AGENTS.md + authoring instructions so docs/ stays Zi-user-docs-only.
# Conflicts: # AGENTS.md # community/00_contributing/02_contributing_to_zi.mdx # community/03_zunit/01_installation.mdx # community/03_zunit/06_ci.mdx
…nfig - query.mjs: parse response as text first; surface HTTP status + body on non-JSON errors instead of crashing - index.ts: wrap the Edge Function handler in try/catch returning internal_error - migration: schema-qualify vector distance as OPERATOR(extensions.<=>) so match_public_docs works under 'set search_path = ''' - add supabase/config.toml (local CLI config) and supabase/.gitignore
- functions/[[path]].ts: implement Range + If-None-Match handling (206/304) so the advertised preflight headers are actually supported; add Accept-Ranges - prism: use plain capturing groups instead of named groups for Prism lookbehind (older-browser regex compatibility) - embed-docs: skip re-embedding sources whose content_hash is unchanged, and batch embeddings into one request per document instead of one per chunk
The Supabase Knowledge Search maintainer guide is operational documentation (secret names, infra topology, ops CLIs) and does not belong on the public wiki. Relocated to z-shell/.github/runbooks/supabase-knowledge-search.md. Updates the content-root boundaries: community/ holds community content only; maintainer / operational runbooks live in z-shell/.github/runbooks/. Refs ADR 0006.
The lockfile auto-merge left a dangling ws@8.20.0 reference (main bumped ws to 8.20.1), breaking 'pnpm i --frozen-lockfile' in CI. Re-resolved the lockfile.
…sponses Addresses CodeQL 'information exposure through a stack trace': log error details server-side and return only a generic error code to the client.
Reverts the plain-capture-group change: the repo's eslint config enforces prefer-named-capture-group, and Prism's lookbehind:true requires a capturing (not non-capturing) group, so named groups are the only option that satisfies both. Named capture groups are ES2018 and supported across the project's browserslist targets.
Wrangler 4 dropped Node 20 support, which broke the Deploy Wiki and r2-sync workflows. Bump setup-node to 22 across the wrangler and CI workflows.
The Supabase-backed semantic search had no live frontend consumer (site search is Algolia DocSearch; SearchBar.tsx only tweaks aria attributes), and its indexer workflow was failing on main. Remove the supabase/ project, scripts/knowledge-search/, the indexer workflow, the openai and postgres dependencies, and the stale AGENTS.md reference.
Follow-up to the wrangler@4 Node bump: the Trunk Check composite action still installed deps under Node 20, mismatching engines.node >=22. Bump it and update the AGENTS.md prerequisite.
ci: fix Node 22 deploy + remove Supabase knowledge-search
Resolves the next/main divergence by taking next's validated tree (CI green on #749). Drops the re-added Supabase knowledge-search files and supersedes the moot main-only commits (#741 IPv4 fix to the deleted indexer, #746 openai lockfile bump). Transient dependabot dev-dep/action-SHA bumps on main will be recaught by next's dependabot.
Deploying zsh with
|
| Latest commit: |
dde0ada
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://4fcf3178.zsh.pages.dev |
| Branch Preview URL: | https://promotion-zsh10.zsh.pages.dev |
Contributor
|
Size Change: -15 B (0%) Total Size: 6.59 MB 📦 View Changed
ℹ️ View Unchanged
|
Contributor
There was a problem hiding this comment.
Pull request overview
Promotes the next branch tree to main to restore production CI by updating CI/runtime requirements for Cloudflare tooling and removing the unused Supabase knowledge-search implementation from the repo.
Changes:
- Update project + CI to Node 22 (package engines, Trunk setup action, and key workflows) to support
wrangler@4. - Remove Supabase knowledge-search end-to-end (Supabase schema/migration + Edge Function + indexer/query scripts/tests + indexing workflow) and drop
openai/postgresdependencies. - Regenerate
pnpm-lock.yamlto reflect dependency removals and current tree state.
Reviewed changes
Copilot reviewed 21 out of 22 changed files in this pull request and generated 14 comments.
Show a summary per file
| File | Description |
|---|---|
AGENTS.md |
Updates documented minimum Node version and removes Supabase runbook reference. |
package.json |
Bumps engines.node to >=22; removes knowledge-search scripts and openai/postgres deps; adjusts dev deps. |
pnpm-lock.yaml |
Lockfile updates reflecting Supabase/OpenAI removal and dependency graph changes. |
.trunk/setup-ci/action.yml |
Trunk CI composite action now sets up Node 22. |
.github/workflows/pages-deployment.yml |
Deploy workflow updated to Node 22; action SHAs changed. |
.github/workflows/r2-sync.yml |
R2 sync workflow updated to Node 22; action SHAs changed. |
.github/workflows/ci-perf.yml |
CI perf workflow updated to Node 22; action SHAs changed. |
.github/workflows/trunk-check.yml |
Trunk check workflow action SHAs changed (checkout + trunk-action). |
.github/workflows/codeql.yml |
CodeQL workflow action SHAs changed (checkout + CodeQL action). |
.github/workflows/crowdin-upload.yml |
Crowdin upload workflow checkout action SHA changed. |
.github/workflows/crowdin-download.yml |
Crowdin download workflow checkout action SHA changed. |
.github/workflows/knowledge-search-index.yml |
Removes the knowledge-search indexing workflow entirely. |
scripts/knowledge-search/collect-docs.mjs |
Removes the docs collection/chunking logic used by the deleted indexer. |
scripts/knowledge-search/collect-docs.test.mjs |
Removes tests for docs collection/chunking logic. |
scripts/knowledge-search/embed-docs.mjs |
Removes the OpenAI embedding + Postgres indexing script. |
scripts/knowledge-search/embed-docs.test.mjs |
Removes tests for the indexing script helpers. |
scripts/knowledge-search/query.mjs |
Removes the query CLI for the Supabase Edge Function. |
scripts/knowledge-search/query.test.mjs |
Removes tests for the query CLI formatting/env validation. |
supabase/config.toml |
Removes Supabase local dev configuration. |
supabase/functions/knowledge-search/index.ts |
Removes Supabase Edge Function implementation for knowledge-search. |
supabase/migrations/20260521000000_create_docs_search.sql |
Removes Supabase migration that created the docs_search schema + RPC. |
supabase/.gitignore |
Removes Supabase-specific ignore rules (directory removed). |
| steps: | ||
| - name: Checkout | ||
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | ||
| uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 |
|
|
||
| - name: Trunk Check | ||
| uses: trunk-io/trunk-action@04ba50e7658c81db7356da96657e6e77f220bfa3 # v1.3.1 | ||
| uses: trunk-io/trunk-action@75699af9e26881e564e9d832ef7dc3af25ec031b # v1.2.4 |
| steps: | ||
| - name: "⤵️ Check out code from GitHub" | ||
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | ||
| uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 |
| uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 | ||
| - name: "⎔ Setup node" | ||
| uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 | ||
| uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 |
| steps: | ||
| - name: "⤵️ Check out code from GitHub" | ||
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | ||
| uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 |
Comment on lines
80
to
86
| - name: "📦 Setup pnpm" | ||
| uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 | ||
| - name: "⎔ Setup node" | ||
| uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 | ||
| uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 | ||
| with: | ||
| node-version: "20" | ||
| node-version: "22" | ||
| cache: "pnpm" |
| steps: | ||
| - name: "⤵️ Check out code from GitHub" | ||
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | ||
| uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 |
| steps: | ||
| - name: "⤵️ Check out code from GitHub" | ||
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | ||
| uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 |
Comment on lines
68
to
71
| # Initializes the CodeQL tools for scanning. | ||
| - name: Initialize CodeQL | ||
| uses: github/codeql-action/init@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v4.36.0 | ||
| uses: github/codeql-action/init@9e0d7b8d25671d64c341c19c0152d693099fb5ba # v4.35.5 | ||
| with: |
| steps: | ||
| - name: Checkout repository | ||
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | ||
| uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 |
ss-o
added a commit
to z-shell/.github
that referenced
this pull request
May 25, 2026
The wiki's Supabase knowledge-search feature was removed (z-shell/wiki#750), so delete its operational runbook and drop the Supabase MCP plugin section and stale references from the MCP instructions and ADR-0006.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Promotes the validated
nexttree tomainto recover production CI. Tracked in ZSH-10 (T3).mainworkflows: Deploy Wiki (Node 20 → 22 forwrangler@4) and the Supabase Knowledge Search indexer (removed entirely).Why a merge commit with
next's treenextandmaindiverged and promotions here are squash-merges, leaving a far-back merge-base. A naive merge silently resurrects the deleted Supabase files. This branch resolves the merge tonext's exact tree (the tree CI passed green on #749), which is the intended going-forward state.Superseded main-only commits (intentionally dropped):
openailockfile bump (openaiis removed).Transient dependabot dev-dep / action-SHA bumps on
main(#743–#745, #747, #748) will be recaught bynext's dependabot; none affect the production build.Test plan
mainis greenSupersedes the stale draft #742.