Skip to content

chore(release): publish native completions in packslip - #814

Merged
jdx merged 4 commits into
mainfrom
codex/publish-packslip-completions
Sep 5, 2026
Merged

chore(release): publish native completions in packslip#814
jdx merged 4 commits into
mainfrom
codex/publish-packslip-completions

Conversation

@jdx

@jdx jdx commented Sep 5, 2026

Copy link
Copy Markdown
Owner

Publish native Bash, Zsh, Fish, and PowerShell scripts alongside fnox's usage specification and declare them as signed Packslip completion resources. Installers such as mise can register completions automatically from the release inventory. The scripts call fnox itself and need no separate usage executable.

Release generation checks each script for the native callback, exercises that callback for each shell, and validates Bash syntax. Local generation, callback checks, and Bash/Zsh syntax checks passed with fnox 1.35.1; workflow actionlint/ShellCheck and Prettier passed.

Companion installer support: jdx/mise#12848. Registry adoption: jdx/mise#12845.

AI-assisted — Tool: Codex; model: OpenAI/GPT-6; version: unavailable.


Note

Low Risk
Changes are limited to the release workflow and published assets; no runtime application code, with added CI gates that reduce bad completion scripts shipping.

Overview
Release CI now generates Bash, Zsh, Fish, and PowerShell completion scripts from the Linux release binary (alongside the existing fnox.usage.kdl), uploads them to the GitHub release, and registers them in the Packslip inventory so installers (e.g. mise) can wire up shell completions from the signed release metadata.

The create-release job adds a step to install zsh, fish, and PowerShell on the runner, then validates each completion file (non-empty, includes the __complete_word__ hook, and the __complete_word__ callback returns get for fnox ge) before syntax-checking all four shells. Packslip resources grows from cli-spec/usage only to four completion/* asset mappings in addition to the usage spec.

Reviewed by Cursor Bugbot for commit 89afdff. Bugbot is set up for automated code reviews on this repo. Configure here.

Summary by CodeRabbit

  • New Features

    • CLI releases include shell completions for Bash, Zsh, Fish, and PowerShell.
    • Completion files are published alongside the CLI usage specification for easier setup across supported shells.
  • Bug Fixes

    • Release validation checks Bash, Zsh, Fish, and PowerShell completion files for syntax errors before publication, helping ensure downloadable shell integrations work as expected.

@coderabbitai

coderabbitai Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited), Organization UI (inherited)

Review profile: CHILL

Plan: Team

Run ID: dc71311f-74f3-42b0-8f89-c176c1c1395f

📥 Commits

Reviewing files that changed from the base of the PR and between edd3171 and 89afdff.

📒 Files selected for processing (1)
  • .github/workflows/release.yml

Included review availability: Your plan provides up to 8 included reviews per hour; 4 remain after this review.


📝 Walkthrough

Walkthrough

The release workflow replaces mise-based setup with apt installation and conditional system pwsh use. It keeps validation, completion uploads, and packslip resources for Bash, Zsh, Fish, and PowerShell.

Changes

Release completion assets

Layer / File(s) Summary
Generate, validate, and publish completions
.github/workflows/release.yml
The workflow configures apt retries and timeouts, installs Zsh and Fish, and installs PowerShell only when pwsh is unavailable. PowerShell validation uses the system pwsh. The workflow continues to validate, upload, and package all four completion files.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to 89afd

The release workflow now installs completion validation tools through apt and uses system PowerShell for parser validation while continuing to publish all completion assets. No concrete current-head merge-blocking risk is identified.

Poem

A rabbit tunes the release trail
Apt retries help tools prevail
System PowerShell checks the flow
Four completion shells now go
Packslip keeps the files in tow

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the primary change: publishing native shell completions as Packslip resources.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@greptile-apps

greptile-apps Bot commented Sep 5, 2026

Copy link
Copy Markdown

Greptile Summary

This PR publishes native Bash, Zsh, Fish, and PowerShell completion scripts as release assets and signed Packslip resources. It also validates each generated callback and performs shell-specific syntax checks before upload.

Changes since the previous review replace the mise-managed PowerShell installation with the hosted runner's existing pwsh, retain an apt fallback, add bounded apt retries and timeouts, and execute the PowerShell parser through a temporary script file.

AI-assisted — Tool: Greptile; model: llmproxy/gpt-5.6-sol; version: unavailable.

Confidence Score: 5/5

The PR appears safe to merge with no outstanding correctness or repository-rule issues.

Both previous findings were manually resolved after the workflow added non-Bash parser checks and initialized mise; the latest revision preserves those checks while using PowerShell already available on the configured hosted runner.

Important Files Changed

Filename Overview
.github/workflows/release.yml Generates, validates, uploads, and inventories native completion assets; the latest changes safely simplify syntax-checker provisioning.

Reviews (4): Last reviewed commit: "chore(release): harden completion syntax..." | Re-trigger Greptile

Comment thread .github/workflows/release.yml
Comment thread .github/workflows/release.yml Outdated

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 94dc07c. Configure here.

Comment thread .github/workflows/release.yml Outdated
@jdx
jdx merged commit eb9f097 into main Sep 5, 2026
22 checks passed
@jdx
jdx deleted the codex/publish-packslip-completions branch September 5, 2026 23:48
@github-actions

github-actions Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Instruction counts

The comparison never ran — an earlier step failed.

89afdff1a29d vs `` · measured on the runner, not pushed to the history.

jdx commented Sep 6, 2026

Copy link
Copy Markdown
Owner Author

The delayed perf / instruction-count check failed during mise-action setup, before compiling or measuring fnox: the runner could not write /github/home/.local/share/mise/bin/mise. #815 isolates mise state in writable temporary directories in both performance workflows. The native completion changes and their CI checks passed.

AI-assisted — Tool: Codex; model: OpenAI/GPT-6; version: unavailable.

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