Releases: Veedubin/neuralgentics
Release list
neuralgentics-0.9.2
neuralgentics neuralgentics-0.9.2
OpenCode plugin — agent personas, skills, routing enforcement, and MCP tools.
Install
curl -fsSL https://raw.githubusercontent.com/Veedubin/neuralgentics/main/scripts/install.sh | bash -s -- --home-dir --existingActivate
cd your-project
ln -s ~/.neuralgentics/.opencode .opencode
opencodeWhat's included
@veedubin/neuralgentics— compiled TypeScript overlay (orchestrator, memory client, routing) [published to npm].opencode/agents/— 8 agent personas (architect, coder, explorer, git, orchestrator, reviewer, tester, writer).opencode/skills/— 5 skills (boomerang-orchestrator, kanban-board-manager, skill-self-audit, todo-list-updater, update-gh-docs).opencode/opencode.json— OpenCode config with Ollama Cloud models, MCP servers, LSP, formatter.opencode/AGENTS.md— Project instructions and agent protocol
neuralgentics-0.9.1
neuralgentics neuralgentics-0.9.1
OpenCode plugin — agent personas, skills, routing enforcement, and MCP tools.
Install
curl -fsSL https://raw.githubusercontent.com/Veedubin/neuralgentics/main/scripts/install.sh | bash -s -- --home-dir --existingActivate
cd your-project
ln -s ~/.neuralgentics/.opencode .opencode
opencodeWhat's included
@veedubin/neuralgentics— compiled TypeScript overlay (orchestrator, memory client, routing) [published to npm].opencode/agents/— 8 agent personas (architect, coder, explorer, git, orchestrator, reviewer, tester, writer).opencode/skills/— 5 skills (boomerang-orchestrator, kanban-board-manager, skill-self-audit, todo-list-updater, update-gh-docs).opencode/opencode.json— OpenCode config with Ollama Cloud models, MCP servers, LSP, formatter.opencode/AGENTS.md— Project instructions and agent protocol
neuralgentics-0.9.0
neuralgentics neuralgentics-0.9.0
OpenCode plugin — agent personas, skills, routing enforcement, and MCP tools.
Install
curl -fsSL https://raw.githubusercontent.com/Veedubin/neuralgentics/main/scripts/install.sh | bash -s -- --home-dir --existingActivate
cd your-project
ln -s ~/.neuralgentics/.opencode .opencode
opencodeWhat's included
@neuralgentics/plugin— compiled TypeScript overlay (orchestrator, memory client, routing).opencode/agents/— 8 agent personas (architect, coder, explorer, git, orchestrator, reviewer, tester, writer).opencode/skills/— 5 skills (boomerang-orchestrator, kanban-board-manager, skill-self-audit, todo-list-updater, update-gh-docs).opencode/opencode.json— OpenCode config with Ollama Cloud models, MCP servers, LSP, formatter.opencode/AGENTS.md— Project instructions and agent protocol
neuralgentics-0.8.0
neuralgentics neuralgentics-0.8.0
OpenCode plugin — agent personas, skills, routing enforcement, and MCP tools.
Install
curl -fsSL https://raw.githubusercontent.com/Veedubin/neuralgentics/main/scripts/install.sh | bash -s -- --home-dir --existingActivate
cd your-project
ln -s ~/.neuralgentics/.opencode .opencode
opencodeWhat's included
@neuralgentics/plugin— compiled TypeScript overlay (orchestrator, memory client, routing).opencode/agents/— 8 agent personas (architect, coder, explorer, git, orchestrator, reviewer, tester, writer).opencode/skills/— 5 skills (boomerang-orchestrator, kanban-board-manager, skill-self-audit, todo-list-updater, update-gh-docs).opencode/opencode.json— OpenCode config with Ollama Cloud models, MCP servers, LSP, formatter.opencode/AGENTS.md— Project instructions and agent protocol
neuralgentics-0.7.3
neuralgentics neuralgentics-0.7.3
OpenCode plugin — agent personas, skills, routing enforcement, and MCP tools.
Install
curl -fsSL https://raw.githubusercontent.com/Veedubin/neuralgentics/main/scripts/install.sh | bash -s -- --home-dir --existingActivate
cd your-project
ln -s ~/.neuralgentics/.opencode .opencode
opencodeWhat's included
@neuralgentics/plugin— compiled TypeScript overlay (orchestrator, memory client, routing).opencode/agents/— 8 agent personas (architect, coder, explorer, git, orchestrator, reviewer, tester, writer).opencode/skills/— 5 skills (boomerang-orchestrator, kanban-board-manager, skill-self-audit, todo-list-updater, update-gh-docs).opencode/opencode.json— OpenCode config with Ollama Cloud models, MCP servers, LSP, formatter.opencode/AGENTS.md— Project instructions and agent protocol
neuralgentics-0.7.2
neuralgentics neuralgentics-0.7.2
OpenCode plugin — agent personas, skills, routing enforcement, and MCP tools.
Install
curl -fsSL https://raw.githubusercontent.com/Veedubin/neuralgentics/main/scripts/install.sh | bash -s -- --home-dir --existingActivate
cd your-project
ln -s ~/.neuralgentics/.opencode .opencode
opencodeWhat's included
@neuralgentics/plugin— compiled TypeScript overlay (orchestrator, memory client, routing).opencode/agents/— 8 agent personas (architect, coder, explorer, git, orchestrator, reviewer, tester, writer).opencode/skills/— 5 skills (boomerang-orchestrator, kanban-board-manager, skill-self-audit, todo-list-updater, update-gh-docs).opencode/opencode.json— OpenCode config with Ollama Cloud models, MCP servers, LSP, formatter.opencode/AGENTS.md— Project instructions and agent protocol
Neuralgentics v0.7.1
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
[0.6.7] - 2026-06-12
Patch release: curl|bash one-liner now works end-to-end + docker support.
Fixed
curl ... | bashone-liner was broken on a clean re-install — v0.6.3 fixed the broken-symlink and TTY detection bugs but the TTY guard still fired before the.envand container-credential-recovery checks. A user with NO.envfile and a runningneuralgentics-pgcontainer would hit the TTY guard and get an error instead of having their existing setup auto-detected. Reorderedprompt_database()to: (1) check.envfirst, (2) try to recover creds from an existing running container via$CONTAINER_CMD exec ... printenv, (3) auto-start a fresh container if needed, (4) only bail with the TTY error as a last resort.- Stopped container would create a duplicate — When
neuralgentics-pgexisted but was stopped, the installer would try to auto-start a new container on port 6000, fail with a port conflict, and leave the user in a broken state. Now: detect stopped container → trydocker start(orpodman start) first → only auto-create if no container exists at all. - TTY error message was misleading — The old message said "needs to ask for the PostgreSQL password" even when the actual problem was a stopped container or a credential-recovery failure. Reworded to be accurate and to suggest
docker start neuralgentics-pgfor the stopped-container case.
Added
- Docker support — The installer previously hardcoded
podman. Now uses_detect_container_runtime()to pickdocker(preferred — broader install base) or fall back topodman. Both produce identical container behavior. Users with only docker installed no longer need to install podman. Podman-compose and docker-compose both still work for the full-stack deploy path. - Auto-recover creds from any container — The
printenvrecovery path works for containers created by THIS installer OR by any other means (docker run, podman run, compose file) as long asPOSTGRES_PASSWORDwas passed via-e. Verified end-to-end on the user's existingneuralgentics-pgcontainer (pg18) — recovered password matches whatpsqlaccepts.
Verification
The canonical curl -fsSL https://raw.githubusercontent.com/Veedubin/neuralgentics/main/scripts/install.sh | bash now works for all three common cases: (a) existing .env (re-install / upgrade — returns immediately), (b) existing running container with no .env (auto-recovers creds, writes .env, continues), (c) fresh install (auto-starts a fresh container, writes .env with a generated password). The only failure mode is a genuinely broken environment (no docker/podman, or a stopped container that can't be started) — the error message now explains both cases and how to fix them.
[0.6.3] - 2026-06-12
Patch release: 3 install-script critical fixes (broken symlink, curl|bash stdin trap, container credential recovery) + multi-project registry feature.
Fixed
- CRITICAL: Tarball archive prefix bug — The release pipeline always wraps artifacts in a top-level
neuralgentics/directory. The install script extracted straight to$PREFIX, so binaries landed at$PREFIX/neuralgentics/bin/...and the symlink at~/.local/bin/neuralgenticswas dangling. The published v0.6.0/v0.6.1/v0.6.2 installers all had this bug — every fresh install had a non-functional CLI. Fix:tar --strip-components=1so binaries land at$PREFIX/bin/directly. The fragile glob-mvworkaround that was added in v0.6.1 but never shipped is removed. - CRITICAL:
curl | bashmade stdin a pipe, killing the password prompt — The PostgreSQL password prompt (read -r db_password) returned 1 on EOF (curl pipe), setdb_password="", and the installer bailed with "Password cannot be empty" before ever asking the user a question. Add a[[ ! -t 0 ]]guard that emits a clear "save and re-run" error explaining the workaround. - Container credential recovery — When a
neuralgentics-pgcontainer already exists but no.envfile does, the installer used to either ask for the password (which fails under curl pipe — see above) or give up. Now does 3-tier recovery:podman exec ... printenv | grep POSTGRES_*→ search backup.envpaths → interactive prompt (TTY only). Port extraction usespodman inspect --format '{{(index (index .NetworkSettings.Ports "5432/tcp") 0).HostPort}}'instead of the broken HostPort regex.
Added
- Multi-project registration — The installer now writes
~/.neuralgentics/projects.tomlon first run, registering the install directory with name (basename of$PWD), path, timestamp, and adefaultflag. Idempotent re-runs update the existing entry instead of duplicating. First registration is markeddefault = true; re-registering a project that was already default preserves its default status. Future:neuralgentics projectsCLI command and/projectsTUI slash command will read this file. make lint-shellquality gate — Runsbash -non allscripts/*.shto catch syntax errors before they hit users. Wired into themakeaggregate target.
Verification
Tested end-to-end with the v0.6.0 tarball: tar --strip-components=1 places binaries correctly, non-TTY stdin exits with helpful error, --yes mode auto-detects existing .env and registers the project, and 5 sequential register/re-register cycles leave the registry with exactly 1 default = true and 0 orphan lines.
[0.6.2] - 2026-06-09
Patch release: 1 install-script follow-up fix + CI workflow modernization.
Fixed
- SSL cert permission in rootless podman (Bug #10) — The v0.6.0/v0.6.1 SSL setup mounted the certs as
:roand tried tochownthem to UID 999 on the host (Bug #8 fix), which silently fails for non-root users in rootless podman. The certs ended up asroot:rootinside the container, and the postgres user (which the entrypoint drops to via gosu) couldn't read them. Fix: use:zmount (no:ro) and chown inside a bash wrapper before exec'ing the entrypoint. This is the canonical rootless-podman pattern.
CI Modernization
- Bump all actions to Node.js 24 majors (silences GitHub's Node 20 deprecation warnings; required by September 16, 2026 when Node 20 is removed from runners)
actions/checkoutv4 → v5actions/setup-gov5 → v6actions/setup-nodev4 → v5actions/cachev4 → v5actions/upload-artifactv4 → v5actions/download-artifactv4 → v5softprops/action-gh-releasev2 → v3docker/login-actionv3 → v4docker/setup-buildx-actionv3 → v4docker/build-push-actionv6 → v7- Plus
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=trueenv var in all 3 workflows to force any third-party actions onto Node 24
- Fix
go.sumcache restore bug —hashFiles('**/go.sum')at repo root never matches becausego.sumlives inpackages/*/. Changed tohashFiles('packages/*/go.sum')so the Go module cache actually restores between CI runs. - Pin
windows-latesttowindows-2022—windows-latestis being redirected towindows-2025-vs2026on June 15, 2026. Pin explicitly to avoid surprises.
[0.6.1] - 2026-06-09
Patch release: 3 install-script follow-up fixes found when re-testing the v0.6.0 install.
Fixed
- DEFAULT_VERSION not bumped in v0.6.0 install.sh (Bug #1-again) — The T-DOCS-V060 card bumped package.json to 0.6.0 but missed install.sh's DEFAULT_VERSION, which still said 0.5.0. Result: the v0.6.0 install.sh downloaded the v0.5.0 binaries (without the 5 fixes). Bump to 0.6.0.
- SSL cert :ro mount chown failure (Bug #8) — The v0.6.0 SSL setup mounted certs as :ro then tried to chown inside the entrypoint, which fails with "Read-only file system" and kills the container. Fix: chown 999:999 on the host before mounting :ro, drop the chown from the entrypoint.
- mktemp failed when data dir didn't exist (Bug #9) — The SSL cert mktemp needed the data dir to exist. Add mkdir -p before mktemp.
[0.6.0] - 2026-06-09
Minor release: 5 install-script and TUI-runtime bug fixes for a complete 100% working install. The canonical curl -fsSL .../install.sh | bash one-liner now works for the first time since v0.1.0.
Added
- TUI graceful sidecar fallback (Bug #4) — The TUI no longer hangs or logs warnings when the Python embedding sidecar isn't available. New
docs/sidecar-setup.mdcovers manual setup for users who want real BGE-Large embeddings. Memory operations work fine with noop embeddings by default.
Fixed
- Install script archive name 'v' prefix bug (Bug #2, CRITICAL) —
scripts/install.shconstructedneuralgentics-v0.5.0-...but GH release assets areneuralgentics-0.5.0-...(no v). The canonical one-liner has been broken since v0.1.0. - DEFAULT_VERSION hardcoded to 0.1.0 — Install script was hardcoded to install v0.1.0 unless the user passed
--version. Bumped to v0.5.0. - TUI backend path resolver didn't know install prefix (Bug #3) —
resolveBackendPath()only checked $PATH, $NEURALGENTICS_BACKEND_PATH, and a source-tree relative path. Added 2 new steps:$NEURALGENTICS_INSTALL_PREFIX/bin/...and$HOME/.neuralgentics/bin/...as fallback. - Backend env var drift MEMINI_DB_URL → NEURALGENTICS_DB_URL (Bug #5) — Go binary was reading
MEMINI_DB_URL(legacy from Session 25's rename) but TUI setsNEURALGENTICS_DB_URL. Backend fell back to hardcoded localhost:5434 (off-limits prod). Now reads both with NEURALGENTICS_DB_URL taking precedence. - Install verify_install TUI version check hung (Bug #6) —
neuralgentics --versionopened a TUI render (no --version mode), hanging the install script forever. Replaced with a size+executable check. - **Install-spawned pg18 container had no SSL (Bug #7)*...
Neuralgentics v0.7.0
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
[0.6.7] - 2026-06-12
Patch release: curl|bash one-liner now works end-to-end + docker support.
Fixed
curl ... | bashone-liner was broken on a clean re-install — v0.6.3 fixed the broken-symlink and TTY detection bugs but the TTY guard still fired before the.envand container-credential-recovery checks. A user with NO.envfile and a runningneuralgentics-pgcontainer would hit the TTY guard and get an error instead of having their existing setup auto-detected. Reorderedprompt_database()to: (1) check.envfirst, (2) try to recover creds from an existing running container via$CONTAINER_CMD exec ... printenv, (3) auto-start a fresh container if needed, (4) only bail with the TTY error as a last resort.- Stopped container would create a duplicate — When
neuralgentics-pgexisted but was stopped, the installer would try to auto-start a new container on port 6000, fail with a port conflict, and leave the user in a broken state. Now: detect stopped container → trydocker start(orpodman start) first → only auto-create if no container exists at all. - TTY error message was misleading — The old message said "needs to ask for the PostgreSQL password" even when the actual problem was a stopped container or a credential-recovery failure. Reworded to be accurate and to suggest
docker start neuralgentics-pgfor the stopped-container case.
Added
- Docker support — The installer previously hardcoded
podman. Now uses_detect_container_runtime()to pickdocker(preferred — broader install base) or fall back topodman. Both produce identical container behavior. Users with only docker installed no longer need to install podman. Podman-compose and docker-compose both still work for the full-stack deploy path. - Auto-recover creds from any container — The
printenvrecovery path works for containers created by THIS installer OR by any other means (docker run, podman run, compose file) as long asPOSTGRES_PASSWORDwas passed via-e. Verified end-to-end on the user's existingneuralgentics-pgcontainer (pg18) — recovered password matches whatpsqlaccepts.
Verification
The canonical curl -fsSL https://raw.githubusercontent.com/Veedubin/neuralgentics/main/scripts/install.sh | bash now works for all three common cases: (a) existing .env (re-install / upgrade — returns immediately), (b) existing running container with no .env (auto-recovers creds, writes .env, continues), (c) fresh install (auto-starts a fresh container, writes .env with a generated password). The only failure mode is a genuinely broken environment (no docker/podman, or a stopped container that can't be started) — the error message now explains both cases and how to fix them.
[0.6.3] - 2026-06-12
Patch release: 3 install-script critical fixes (broken symlink, curl|bash stdin trap, container credential recovery) + multi-project registry feature.
Fixed
- CRITICAL: Tarball archive prefix bug — The release pipeline always wraps artifacts in a top-level
neuralgentics/directory. The install script extracted straight to$PREFIX, so binaries landed at$PREFIX/neuralgentics/bin/...and the symlink at~/.local/bin/neuralgenticswas dangling. The published v0.6.0/v0.6.1/v0.6.2 installers all had this bug — every fresh install had a non-functional CLI. Fix:tar --strip-components=1so binaries land at$PREFIX/bin/directly. The fragile glob-mvworkaround that was added in v0.6.1 but never shipped is removed. - CRITICAL:
curl | bashmade stdin a pipe, killing the password prompt — The PostgreSQL password prompt (read -r db_password) returned 1 on EOF (curl pipe), setdb_password="", and the installer bailed with "Password cannot be empty" before ever asking the user a question. Add a[[ ! -t 0 ]]guard that emits a clear "save and re-run" error explaining the workaround. - Container credential recovery — When a
neuralgentics-pgcontainer already exists but no.envfile does, the installer used to either ask for the password (which fails under curl pipe — see above) or give up. Now does 3-tier recovery:podman exec ... printenv | grep POSTGRES_*→ search backup.envpaths → interactive prompt (TTY only). Port extraction usespodman inspect --format '{{(index (index .NetworkSettings.Ports "5432/tcp") 0).HostPort}}'instead of the broken HostPort regex.
Added
- Multi-project registration — The installer now writes
~/.neuralgentics/projects.tomlon first run, registering the install directory with name (basename of$PWD), path, timestamp, and adefaultflag. Idempotent re-runs update the existing entry instead of duplicating. First registration is markeddefault = true; re-registering a project that was already default preserves its default status. Future:neuralgentics projectsCLI command and/projectsTUI slash command will read this file. make lint-shellquality gate — Runsbash -non allscripts/*.shto catch syntax errors before they hit users. Wired into themakeaggregate target.
Verification
Tested end-to-end with the v0.6.0 tarball: tar --strip-components=1 places binaries correctly, non-TTY stdin exits with helpful error, --yes mode auto-detects existing .env and registers the project, and 5 sequential register/re-register cycles leave the registry with exactly 1 default = true and 0 orphan lines.
[0.6.2] - 2026-06-09
Patch release: 1 install-script follow-up fix + CI workflow modernization.
Fixed
- SSL cert permission in rootless podman (Bug #10) — The v0.6.0/v0.6.1 SSL setup mounted the certs as
:roand tried tochownthem to UID 999 on the host (Bug #8 fix), which silently fails for non-root users in rootless podman. The certs ended up asroot:rootinside the container, and the postgres user (which the entrypoint drops to via gosu) couldn't read them. Fix: use:zmount (no:ro) and chown inside a bash wrapper before exec'ing the entrypoint. This is the canonical rootless-podman pattern.
CI Modernization
- Bump all actions to Node.js 24 majors (silences GitHub's Node 20 deprecation warnings; required by September 16, 2026 when Node 20 is removed from runners)
actions/checkoutv4 → v5actions/setup-gov5 → v6actions/setup-nodev4 → v5actions/cachev4 → v5actions/upload-artifactv4 → v5actions/download-artifactv4 → v5softprops/action-gh-releasev2 → v3docker/login-actionv3 → v4docker/setup-buildx-actionv3 → v4docker/build-push-actionv6 → v7- Plus
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=trueenv var in all 3 workflows to force any third-party actions onto Node 24
- Fix
go.sumcache restore bug —hashFiles('**/go.sum')at repo root never matches becausego.sumlives inpackages/*/. Changed tohashFiles('packages/*/go.sum')so the Go module cache actually restores between CI runs. - Pin
windows-latesttowindows-2022—windows-latestis being redirected towindows-2025-vs2026on June 15, 2026. Pin explicitly to avoid surprises.
[0.6.1] - 2026-06-09
Patch release: 3 install-script follow-up fixes found when re-testing the v0.6.0 install.
Fixed
- DEFAULT_VERSION not bumped in v0.6.0 install.sh (Bug #1-again) — The T-DOCS-V060 card bumped package.json to 0.6.0 but missed install.sh's DEFAULT_VERSION, which still said 0.5.0. Result: the v0.6.0 install.sh downloaded the v0.5.0 binaries (without the 5 fixes). Bump to 0.6.0.
- SSL cert :ro mount chown failure (Bug #8) — The v0.6.0 SSL setup mounted certs as :ro then tried to chown inside the entrypoint, which fails with "Read-only file system" and kills the container. Fix: chown 999:999 on the host before mounting :ro, drop the chown from the entrypoint.
- mktemp failed when data dir didn't exist (Bug #9) — The SSL cert mktemp needed the data dir to exist. Add mkdir -p before mktemp.
[0.6.0] - 2026-06-09
Minor release: 5 install-script and TUI-runtime bug fixes for a complete 100% working install. The canonical curl -fsSL .../install.sh | bash one-liner now works for the first time since v0.1.0.
Added
- TUI graceful sidecar fallback (Bug #4) — The TUI no longer hangs or logs warnings when the Python embedding sidecar isn't available. New
docs/sidecar-setup.mdcovers manual setup for users who want real BGE-Large embeddings. Memory operations work fine with noop embeddings by default.
Fixed
- Install script archive name 'v' prefix bug (Bug #2, CRITICAL) —
scripts/install.shconstructedneuralgentics-v0.5.0-...but GH release assets areneuralgentics-0.5.0-...(no v). The canonical one-liner has been broken since v0.1.0. - DEFAULT_VERSION hardcoded to 0.1.0 — Install script was hardcoded to install v0.1.0 unless the user passed
--version. Bumped to v0.5.0. - TUI backend path resolver didn't know install prefix (Bug #3) —
resolveBackendPath()only checked $PATH, $NEURALGENTICS_BACKEND_PATH, and a source-tree relative path. Added 2 new steps:$NEURALGENTICS_INSTALL_PREFIX/bin/...and$HOME/.neuralgentics/bin/...as fallback. - Backend env var drift MEMINI_DB_URL → NEURALGENTICS_DB_URL (Bug #5) — Go binary was reading
MEMINI_DB_URL(legacy from Session 25's rename) but TUI setsNEURALGENTICS_DB_URL. Backend fell back to hardcoded localhost:5434 (off-limits prod). Now reads both with NEURALGENTICS_DB_URL taking precedence. - Install verify_install TUI version check hung (Bug #6) —
neuralgentics --versionopened a TUI render (no --version mode), hanging the install script forever. Replaced with a size+executable check. - **Install-spawned pg18 container had no SSL (Bug #7)*...
Neuralgentics v0.6.8
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
[0.6.7] - 2026-06-12
Patch release: curl|bash one-liner now works end-to-end + docker support.
Fixed
curl ... | bashone-liner was broken on a clean re-install — v0.6.3 fixed the broken-symlink and TTY detection bugs but the TTY guard still fired before the.envand container-credential-recovery checks. A user with NO.envfile and a runningneuralgentics-pgcontainer would hit the TTY guard and get an error instead of having their existing setup auto-detected. Reorderedprompt_database()to: (1) check.envfirst, (2) try to recover creds from an existing running container via$CONTAINER_CMD exec ... printenv, (3) auto-start a fresh container if needed, (4) only bail with the TTY error as a last resort.- Stopped container would create a duplicate — When
neuralgentics-pgexisted but was stopped, the installer would try to auto-start a new container on port 6000, fail with a port conflict, and leave the user in a broken state. Now: detect stopped container → trydocker start(orpodman start) first → only auto-create if no container exists at all. - TTY error message was misleading — The old message said "needs to ask for the PostgreSQL password" even when the actual problem was a stopped container or a credential-recovery failure. Reworded to be accurate and to suggest
docker start neuralgentics-pgfor the stopped-container case.
Added
- Docker support — The installer previously hardcoded
podman. Now uses_detect_container_runtime()to pickdocker(preferred — broader install base) or fall back topodman. Both produce identical container behavior. Users with only docker installed no longer need to install podman. Podman-compose and docker-compose both still work for the full-stack deploy path. - Auto-recover creds from any container — The
printenvrecovery path works for containers created by THIS installer OR by any other means (docker run, podman run, compose file) as long asPOSTGRES_PASSWORDwas passed via-e. Verified end-to-end on the user's existingneuralgentics-pgcontainer (pg18) — recovered password matches whatpsqlaccepts.
Verification
The canonical curl -fsSL https://raw.githubusercontent.com/Veedubin/neuralgentics/main/scripts/install.sh | bash now works for all three common cases: (a) existing .env (re-install / upgrade — returns immediately), (b) existing running container with no .env (auto-recovers creds, writes .env, continues), (c) fresh install (auto-starts a fresh container, writes .env with a generated password). The only failure mode is a genuinely broken environment (no docker/podman, or a stopped container that can't be started) — the error message now explains both cases and how to fix them.
[0.6.3] - 2026-06-12
Patch release: 3 install-script critical fixes (broken symlink, curl|bash stdin trap, container credential recovery) + multi-project registry feature.
Fixed
- CRITICAL: Tarball archive prefix bug — The release pipeline always wraps artifacts in a top-level
neuralgentics/directory. The install script extracted straight to$PREFIX, so binaries landed at$PREFIX/neuralgentics/bin/...and the symlink at~/.local/bin/neuralgenticswas dangling. The published v0.6.0/v0.6.1/v0.6.2 installers all had this bug — every fresh install had a non-functional CLI. Fix:tar --strip-components=1so binaries land at$PREFIX/bin/directly. The fragile glob-mvworkaround that was added in v0.6.1 but never shipped is removed. - CRITICAL:
curl | bashmade stdin a pipe, killing the password prompt — The PostgreSQL password prompt (read -r db_password) returned 1 on EOF (curl pipe), setdb_password="", and the installer bailed with "Password cannot be empty" before ever asking the user a question. Add a[[ ! -t 0 ]]guard that emits a clear "save and re-run" error explaining the workaround. - Container credential recovery — When a
neuralgentics-pgcontainer already exists but no.envfile does, the installer used to either ask for the password (which fails under curl pipe — see above) or give up. Now does 3-tier recovery:podman exec ... printenv | grep POSTGRES_*→ search backup.envpaths → interactive prompt (TTY only). Port extraction usespodman inspect --format '{{(index (index .NetworkSettings.Ports "5432/tcp") 0).HostPort}}'instead of the broken HostPort regex.
Added
- Multi-project registration — The installer now writes
~/.neuralgentics/projects.tomlon first run, registering the install directory with name (basename of$PWD), path, timestamp, and adefaultflag. Idempotent re-runs update the existing entry instead of duplicating. First registration is markeddefault = true; re-registering a project that was already default preserves its default status. Future:neuralgentics projectsCLI command and/projectsTUI slash command will read this file. make lint-shellquality gate — Runsbash -non allscripts/*.shto catch syntax errors before they hit users. Wired into themakeaggregate target.
Verification
Tested end-to-end with the v0.6.0 tarball: tar --strip-components=1 places binaries correctly, non-TTY stdin exits with helpful error, --yes mode auto-detects existing .env and registers the project, and 5 sequential register/re-register cycles leave the registry with exactly 1 default = true and 0 orphan lines.
[0.6.2] - 2026-06-09
Patch release: 1 install-script follow-up fix + CI workflow modernization.
Fixed
- SSL cert permission in rootless podman (Bug #10) — The v0.6.0/v0.6.1 SSL setup mounted the certs as
:roand tried tochownthem to UID 999 on the host (Bug #8 fix), which silently fails for non-root users in rootless podman. The certs ended up asroot:rootinside the container, and the postgres user (which the entrypoint drops to via gosu) couldn't read them. Fix: use:zmount (no:ro) and chown inside a bash wrapper before exec'ing the entrypoint. This is the canonical rootless-podman pattern.
CI Modernization
- Bump all actions to Node.js 24 majors (silences GitHub's Node 20 deprecation warnings; required by September 16, 2026 when Node 20 is removed from runners)
actions/checkoutv4 → v5actions/setup-gov5 → v6actions/setup-nodev4 → v5actions/cachev4 → v5actions/upload-artifactv4 → v5actions/download-artifactv4 → v5softprops/action-gh-releasev2 → v3docker/login-actionv3 → v4docker/setup-buildx-actionv3 → v4docker/build-push-actionv6 → v7- Plus
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=trueenv var in all 3 workflows to force any third-party actions onto Node 24
- Fix
go.sumcache restore bug —hashFiles('**/go.sum')at repo root never matches becausego.sumlives inpackages/*/. Changed tohashFiles('packages/*/go.sum')so the Go module cache actually restores between CI runs. - Pin
windows-latesttowindows-2022—windows-latestis being redirected towindows-2025-vs2026on June 15, 2026. Pin explicitly to avoid surprises.
[0.6.1] - 2026-06-09
Patch release: 3 install-script follow-up fixes found when re-testing the v0.6.0 install.
Fixed
- DEFAULT_VERSION not bumped in v0.6.0 install.sh (Bug #1-again) — The T-DOCS-V060 card bumped package.json to 0.6.0 but missed install.sh's DEFAULT_VERSION, which still said 0.5.0. Result: the v0.6.0 install.sh downloaded the v0.5.0 binaries (without the 5 fixes). Bump to 0.6.0.
- SSL cert :ro mount chown failure (Bug #8) — The v0.6.0 SSL setup mounted certs as :ro then tried to chown inside the entrypoint, which fails with "Read-only file system" and kills the container. Fix: chown 999:999 on the host before mounting :ro, drop the chown from the entrypoint.
- mktemp failed when data dir didn't exist (Bug #9) — The SSL cert mktemp needed the data dir to exist. Add mkdir -p before mktemp.
[0.6.0] - 2026-06-09
Minor release: 5 install-script and TUI-runtime bug fixes for a complete 100% working install. The canonical curl -fsSL .../install.sh | bash one-liner now works for the first time since v0.1.0.
Added
- TUI graceful sidecar fallback (Bug #4) — The TUI no longer hangs or logs warnings when the Python embedding sidecar isn't available. New
docs/sidecar-setup.mdcovers manual setup for users who want real BGE-Large embeddings. Memory operations work fine with noop embeddings by default.
Fixed
- Install script archive name 'v' prefix bug (Bug #2, CRITICAL) —
scripts/install.shconstructedneuralgentics-v0.5.0-...but GH release assets areneuralgentics-0.5.0-...(no v). The canonical one-liner has been broken since v0.1.0. - DEFAULT_VERSION hardcoded to 0.1.0 — Install script was hardcoded to install v0.1.0 unless the user passed
--version. Bumped to v0.5.0. - TUI backend path resolver didn't know install prefix (Bug #3) —
resolveBackendPath()only checked $PATH, $NEURALGENTICS_BACKEND_PATH, and a source-tree relative path. Added 2 new steps:$NEURALGENTICS_INSTALL_PREFIX/bin/...and$HOME/.neuralgentics/bin/...as fallback. - Backend env var drift MEMINI_DB_URL → NEURALGENTICS_DB_URL (Bug #5) — Go binary was reading
MEMINI_DB_URL(legacy from Session 25's rename) but TUI setsNEURALGENTICS_DB_URL. Backend fell back to hardcoded localhost:5434 (off-limits prod). Now reads both with NEURALGENTICS_DB_URL taking precedence. - Install verify_install TUI version check hung (Bug #6) —
neuralgentics --versionopened a TUI render (no --version mode), hanging the install script forever. Replaced with a size+executable check. - **Install-spawned pg18 container had no SSL (Bug #7)*...
Neuralgentics v0.6.7
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
[0.6.7] - 2026-06-12
Patch release: curl|bash one-liner now works end-to-end + docker support.
Fixed
curl ... | bashone-liner was broken on a clean re-install — v0.6.3 fixed the broken-symlink and TTY detection bugs but the TTY guard still fired before the.envand container-credential-recovery checks. A user with NO.envfile and a runningneuralgentics-pgcontainer would hit the TTY guard and get an error instead of having their existing setup auto-detected. Reorderedprompt_database()to: (1) check.envfirst, (2) try to recover creds from an existing running container via$CONTAINER_CMD exec ... printenv, (3) auto-start a fresh container if needed, (4) only bail with the TTY error as a last resort.- Stopped container would create a duplicate — When
neuralgentics-pgexisted but was stopped, the installer would try to auto-start a new container on port 6000, fail with a port conflict, and leave the user in a broken state. Now: detect stopped container → trydocker start(orpodman start) first → only auto-create if no container exists at all. - TTY error message was misleading — The old message said "needs to ask for the PostgreSQL password" even when the actual problem was a stopped container or a credential-recovery failure. Reworded to be accurate and to suggest
docker start neuralgentics-pgfor the stopped-container case.
Added
- Docker support — The installer previously hardcoded
podman. Now uses_detect_container_runtime()to pickdocker(preferred — broader install base) or fall back topodman. Both produce identical container behavior. Users with only docker installed no longer need to install podman. Podman-compose and docker-compose both still work for the full-stack deploy path. - Auto-recover creds from any container — The
printenvrecovery path works for containers created by THIS installer OR by any other means (docker run, podman run, compose file) as long asPOSTGRES_PASSWORDwas passed via-e. Verified end-to-end on the user's existingneuralgentics-pgcontainer (pg18) — recovered password matches whatpsqlaccepts.
Verification
The canonical curl -fsSL https://raw.githubusercontent.com/Veedubin/neuralgentics/main/scripts/install.sh | bash now works for all three common cases: (a) existing .env (re-install / upgrade — returns immediately), (b) existing running container with no .env (auto-recovers creds, writes .env, continues), (c) fresh install (auto-starts a fresh container, writes .env with a generated password). The only failure mode is a genuinely broken environment (no docker/podman, or a stopped container that can't be started) — the error message now explains both cases and how to fix them.
[0.6.3] - 2026-06-12
Patch release: 3 install-script critical fixes (broken symlink, curl|bash stdin trap, container credential recovery) + multi-project registry feature.
Fixed
- CRITICAL: Tarball archive prefix bug — The release pipeline always wraps artifacts in a top-level
neuralgentics/directory. The install script extracted straight to$PREFIX, so binaries landed at$PREFIX/neuralgentics/bin/...and the symlink at~/.local/bin/neuralgenticswas dangling. The published v0.6.0/v0.6.1/v0.6.2 installers all had this bug — every fresh install had a non-functional CLI. Fix:tar --strip-components=1so binaries land at$PREFIX/bin/directly. The fragile glob-mvworkaround that was added in v0.6.1 but never shipped is removed. - CRITICAL:
curl | bashmade stdin a pipe, killing the password prompt — The PostgreSQL password prompt (read -r db_password) returned 1 on EOF (curl pipe), setdb_password="", and the installer bailed with "Password cannot be empty" before ever asking the user a question. Add a[[ ! -t 0 ]]guard that emits a clear "save and re-run" error explaining the workaround. - Container credential recovery — When a
neuralgentics-pgcontainer already exists but no.envfile does, the installer used to either ask for the password (which fails under curl pipe — see above) or give up. Now does 3-tier recovery:podman exec ... printenv | grep POSTGRES_*→ search backup.envpaths → interactive prompt (TTY only). Port extraction usespodman inspect --format '{{(index (index .NetworkSettings.Ports "5432/tcp") 0).HostPort}}'instead of the broken HostPort regex.
Added
- Multi-project registration — The installer now writes
~/.neuralgentics/projects.tomlon first run, registering the install directory with name (basename of$PWD), path, timestamp, and adefaultflag. Idempotent re-runs update the existing entry instead of duplicating. First registration is markeddefault = true; re-registering a project that was already default preserves its default status. Future:neuralgentics projectsCLI command and/projectsTUI slash command will read this file. make lint-shellquality gate — Runsbash -non allscripts/*.shto catch syntax errors before they hit users. Wired into themakeaggregate target.
Verification
Tested end-to-end with the v0.6.0 tarball: tar --strip-components=1 places binaries correctly, non-TTY stdin exits with helpful error, --yes mode auto-detects existing .env and registers the project, and 5 sequential register/re-register cycles leave the registry with exactly 1 default = true and 0 orphan lines.
[0.6.2] - 2026-06-09
Patch release: 1 install-script follow-up fix + CI workflow modernization.
Fixed
- SSL cert permission in rootless podman (Bug #10) — The v0.6.0/v0.6.1 SSL setup mounted the certs as
:roand tried tochownthem to UID 999 on the host (Bug #8 fix), which silently fails for non-root users in rootless podman. The certs ended up asroot:rootinside the container, and the postgres user (which the entrypoint drops to via gosu) couldn't read them. Fix: use:zmount (no:ro) and chown inside a bash wrapper before exec'ing the entrypoint. This is the canonical rootless-podman pattern.
CI Modernization
- Bump all actions to Node.js 24 majors (silences GitHub's Node 20 deprecation warnings; required by September 16, 2026 when Node 20 is removed from runners)
actions/checkoutv4 → v5actions/setup-gov5 → v6actions/setup-nodev4 → v5actions/cachev4 → v5actions/upload-artifactv4 → v5actions/download-artifactv4 → v5softprops/action-gh-releasev2 → v3docker/login-actionv3 → v4docker/setup-buildx-actionv3 → v4docker/build-push-actionv6 → v7- Plus
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=trueenv var in all 3 workflows to force any third-party actions onto Node 24
- Fix
go.sumcache restore bug —hashFiles('**/go.sum')at repo root never matches becausego.sumlives inpackages/*/. Changed tohashFiles('packages/*/go.sum')so the Go module cache actually restores between CI runs. - Pin
windows-latesttowindows-2022—windows-latestis being redirected towindows-2025-vs2026on June 15, 2026. Pin explicitly to avoid surprises.
[0.6.1] - 2026-06-09
Patch release: 3 install-script follow-up fixes found when re-testing the v0.6.0 install.
Fixed
- DEFAULT_VERSION not bumped in v0.6.0 install.sh (Bug #1-again) — The T-DOCS-V060 card bumped package.json to 0.6.0 but missed install.sh's DEFAULT_VERSION, which still said 0.5.0. Result: the v0.6.0 install.sh downloaded the v0.5.0 binaries (without the 5 fixes). Bump to 0.6.0.
- SSL cert :ro mount chown failure (Bug #8) — The v0.6.0 SSL setup mounted certs as :ro then tried to chown inside the entrypoint, which fails with "Read-only file system" and kills the container. Fix: chown 999:999 on the host before mounting :ro, drop the chown from the entrypoint.
- mktemp failed when data dir didn't exist (Bug #9) — The SSL cert mktemp needed the data dir to exist. Add mkdir -p before mktemp.
[0.6.0] - 2026-06-09
Minor release: 5 install-script and TUI-runtime bug fixes for a complete 100% working install. The canonical curl -fsSL .../install.sh | bash one-liner now works for the first time since v0.1.0.
Added
- TUI graceful sidecar fallback (Bug #4) — The TUI no longer hangs or logs warnings when the Python embedding sidecar isn't available. New
docs/sidecar-setup.mdcovers manual setup for users who want real BGE-Large embeddings. Memory operations work fine with noop embeddings by default.
Fixed
- Install script archive name 'v' prefix bug (Bug #2, CRITICAL) —
scripts/install.shconstructedneuralgentics-v0.5.0-...but GH release assets areneuralgentics-0.5.0-...(no v). The canonical one-liner has been broken since v0.1.0. - DEFAULT_VERSION hardcoded to 0.1.0 — Install script was hardcoded to install v0.1.0 unless the user passed
--version. Bumped to v0.5.0. - TUI backend path resolver didn't know install prefix (Bug #3) —
resolveBackendPath()only checked $PATH, $NEURALGENTICS_BACKEND_PATH, and a source-tree relative path. Added 2 new steps:$NEURALGENTICS_INSTALL_PREFIX/bin/...and$HOME/.neuralgentics/bin/...as fallback. - Backend env var drift MEMINI_DB_URL → NEURALGENTICS_DB_URL (Bug #5) — Go binary was reading
MEMINI_DB_URL(legacy from Session 25's rename) but TUI setsNEURALGENTICS_DB_URL. Backend fell back to hardcoded localhost:5434 (off-limits prod). Now reads both with NEURALGENTICS_DB_URL taking precedence. - Install verify_install TUI version check hung (Bug #6) —
neuralgentics --versionopened a TUI render (no --version mode), hanging the install script forever. Replaced with a size+executable check. - **Install-spawned pg18 container had no SSL (Bug #7)*...