aish: package v0.1.0 for arch + debian #95

Merged
marfrit merged 1 commits from claude-noether/marfrit-packages:noether/aish-v0.1.0-package into main 2026-05-24 22:40:54 +00:00
Contributor

Summary

First packaged release of aish (AI-augmented conversational shell, LuaJIT 2.x + FFI). Tag v0.1.0 (commit 8fb5954, tarball sha256 9ebc3939e028832e39391ae33efacb5ec9bcd99d123cbc8ca1cd6ca9a640b5b5).

  • arch/aish/PKGBUILDdepends=(luajit readline curl), arch=any.
  • debian/aish/{build-deb.sh,debian/} — pure dpkg-deb, SOURCE_DATE_EPOCH pinned, depends luajit, libreadline8t64 | libreadline8, libcurl4t64 | libcurl4 for bookworm+trixie portability.
  • .gitea/workflows/build.yml +174 lines: two new jobs aish-any (chains needs: lmcp-debian) and aish-debian (chains needs: aish-any). Sibling of claude-his-any in the pure-Lua DAG branch.

Install layout mirrors lmcp's pattern, adapted for LuaJIT (5.1 path):

  • /usr/bin/aish — POSIX-sh wrapper that execs luajit $AISH_LIB/main.lua (default /usr/share/lua/5.1/aish).
  • /usr/share/lua/5.1/aish/{main,broker,context,executor,history,mcp,renderer,repl,router,safety,secrets}.lua
  • /usr/share/lua/5.1/aish/ffi/{curl,libc,pty,readline}.lua
  • /usr/share/lua/5.1/aish/vendor/dkjson.lua
  • /usr/share/doc/aish/{README.md,LICENSE,examples/config.lua} — example config is token-redacted (live tokens in upstream's config.lua are deliberately not shipped).

Upstream side: aish needed three in-tree changes for the package to work, landed in 8fb5954 on marfrit/aish main pre-tag — script-dir-relative package.path in main.lua, bin/aish wrapper, redacted examples/config.lua, plus a MIT LICENSE + README update.

Reviews

  • In-tree changes (aish repo, pre-tag): Sonnet review found 2 Important + 1 Nit, all folded in before tag (USAGE text said luajit main.lua, wrapper didn't pre-check for luajit on PATH, HOSSENFELDER URL lacked a replace me hint).
  • Packaging changes (this PR): Sonnet review found 0 blockers, 2 actionable Important/Nit items, both folded in before push (switched needs: from mpv-fourier-aarch64 to lmcp-debian for cleaner DAG + faster cold-build wall-clock; removed dead Build-Depends: debhelper-compat from debian/aish/debian/control since build-deb.sh is pure dpkg-deb).

Test plan

  • aish-any job runs makepkg cleanly on first push and signs successfully.
  • aish-debian job builds the .deb cleanly and reprepro accepts it on both bookworm and trixie suites.
  • pacman -S aish on an Arch/ALARM host installs cleanly; aish --help shows the correct "aish" usage banner; aish interactive starts and locates ~/.config/aish/config.lua.
  • apt install aish on a Debian host (hertz/higgs) installs cleanly; same aish --help + interactive smoke.
  • apt show aish lists the example config under /usr/share/doc/aish/examples/config.lua.

🤖 Generated with Claude Code

## Summary First packaged release of [aish](https://git.reauktion.de/marfrit/aish) (AI-augmented conversational shell, LuaJIT 2.x + FFI). Tag `v0.1.0` (commit `8fb5954`, tarball sha256 `9ebc3939e028832e39391ae33efacb5ec9bcd99d123cbc8ca1cd6ca9a640b5b5`). - `arch/aish/PKGBUILD` — `depends=(luajit readline curl)`, arch=any. - `debian/aish/{build-deb.sh,debian/}` — pure `dpkg-deb`, `SOURCE_DATE_EPOCH` pinned, depends `luajit, libreadline8t64 | libreadline8, libcurl4t64 | libcurl4` for bookworm+trixie portability. - `.gitea/workflows/build.yml` +174 lines: two new jobs `aish-any` (chains `needs: lmcp-debian`) and `aish-debian` (chains `needs: aish-any`). Sibling of claude-his-any in the pure-Lua DAG branch. Install layout mirrors lmcp's pattern, adapted for LuaJIT (5.1 path): - `/usr/bin/aish` — POSIX-sh wrapper that execs `luajit $AISH_LIB/main.lua` (default `/usr/share/lua/5.1/aish`). - `/usr/share/lua/5.1/aish/{main,broker,context,executor,history,mcp,renderer,repl,router,safety,secrets}.lua` - `/usr/share/lua/5.1/aish/ffi/{curl,libc,pty,readline}.lua` - `/usr/share/lua/5.1/aish/vendor/dkjson.lua` - `/usr/share/doc/aish/{README.md,LICENSE,examples/config.lua}` — example config is token-redacted (live tokens in upstream's `config.lua` are deliberately not shipped). Upstream side: aish needed three in-tree changes for the package to work, landed in `8fb5954` on `marfrit/aish` main pre-tag — script-dir-relative `package.path` in `main.lua`, `bin/aish` wrapper, redacted `examples/config.lua`, plus a MIT `LICENSE` + README update. ## Reviews - **In-tree changes** (aish repo, pre-tag): Sonnet review found 2 Important + 1 Nit, all folded in before tag (USAGE text said `luajit main.lua`, wrapper didn't pre-check for `luajit` on PATH, HOSSENFELDER URL lacked a `replace me` hint). - **Packaging changes** (this PR): Sonnet review found 0 blockers, 2 actionable Important/Nit items, both folded in before push (switched `needs:` from `mpv-fourier-aarch64` to `lmcp-debian` for cleaner DAG + faster cold-build wall-clock; removed dead `Build-Depends: debhelper-compat` from `debian/aish/debian/control` since build-deb.sh is pure dpkg-deb). ## Test plan - [ ] `aish-any` job runs makepkg cleanly on first push and signs successfully. - [ ] `aish-debian` job builds the .deb cleanly and reprepro accepts it on both bookworm and trixie suites. - [ ] `pacman -S aish` on an Arch/ALARM host installs cleanly; `aish --help` shows the correct "aish" usage banner; `aish` interactive starts and locates `~/.config/aish/config.lua`. - [ ] `apt install aish` on a Debian host (hertz/higgs) installs cleanly; same `aish --help` + interactive smoke. - [ ] `apt show aish` lists the example config under `/usr/share/doc/aish/examples/config.lua`. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
claude-noether added 1 commit 2026-05-24 22:36:38 +00:00
aish is an AI-augmented conversational shell in LuaJIT 2.x with FFI
bindings to libcurl, GNU readline, and libc — no C extensions, no
build step. Source-of-truth: git.reauktion.de/marfrit/aish, tag v0.1.0
(tarball sha256 9ebc3939e028832e39391ae33efacb5ec9bcd99d123cbc8ca1cd6ca9a640b5b5).

The arch and debian recipes mirror the lmcp pattern (pure-Lua any-arch
package, no makefile, install copies modules directly):

  arch/aish/PKGBUILD           — depends=(luajit readline curl)
  debian/aish/build-deb.sh     — pure dpkg-deb, SOURCE_DATE_EPOCH pinned
  debian/aish/debian/{control,changelog,copyright}

Install layout, matching what main.lua's script-dir-relative package.path
expects after the wrapper execs `luajit /usr/share/lua/5.1/aish/main.lua`:

  /usr/bin/aish                              ← bin/aish wrapper
  /usr/share/lua/5.1/aish/{main,broker,context,executor,history,
                           mcp,renderer,repl,router,safety,secrets}.lua
  /usr/share/lua/5.1/aish/ffi/{curl,libc,pty,readline}.lua
  /usr/share/lua/5.1/aish/vendor/dkjson.lua
  /usr/share/doc/aish/{README.md,LICENSE,examples/config.lua}

CI: two new jobs in .gitea/workflows/build.yml at the end of file.
aish-any chains needs:lmcp-debian (parallel-DAG with claude-his-any,
serialized via the shared arch-aarch64 runner — avoids needless wait
through the unrelated fourier stack). aish-debian chains needs:aish-any.
Both invoke the standard check-already-published.sh fast-skip on no-
change pushes.

Sonnet review (per feedback_reviews_use_sonnet.md + bugfix-process
step 4): no blockers. Folded in two findings before commit: switched
needs: from mpv-fourier-aarch64 to lmcp-debian (cleaner DAG, faster
cold-build wall clock), removed the dead Build-Depends: debhelper-
compat line from debian/aish/debian/control (build-deb.sh doesn't
use debhelper).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
marfrit merged commit b113e053f0 into main 2026-05-24 22:40:54 +00:00
marfrit deleted branch noether/aish-v0.1.0-package 2026-05-24 22:40:55 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: marfrit/marfrit-packages#95