Skip to content

fix: harden embedded Postgres install and recovery on Linux#8

Merged
rabsef-bicrym merged 3 commits intodevfrom
fix/issue-7-arch-embedded-postgres
Feb 27, 2026
Merged

fix: harden embedded Postgres install and recovery on Linux#8
rabsef-bicrym merged 3 commits intodevfrom
fix/issue-7-arch-embedded-postgres

Conversation

@rabsef-bicrym
Copy link
Copy Markdown
Contributor

What

This PR fixes Volt startup failures on Arch Linux by hardening embedded Postgres installation and recovery. It resolves broken shared-library link states that could cause initdb to fail with missing library errors.

Why

Issue #7 reports a startup crash on Arch with shared library load failures during embedded Postgres initialization. The install path could accept broken library link states as valid and then repeatedly fail on subsequent launches.

Changes

  • Preserve library symlink targets during extraction copy
  • Validate embedded Postgres binaries and core libs
  • Auto-repair invalid installs via clean re-download
  • Add clearer shared-library failure remediation guidance

Testing

  • bun run --cwd packages/voltcode typecheck
  • Arch Linux Docker end-to-end startup validation
  • Arch Linux Docker corruption-repair validation

Closes #7.

@thelifeandtimes
Copy link
Copy Markdown

This is still broken. running the install script from the v0.6.1 release gets:
image
While building from source still has messed up dist/ directory locations and wonky architecture->path generation:

volt fix/issue-7-arch-embedded-postgres ❯ cp dist/voltcode-$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m | sed 's/aarch64/arm64/')/bin/volt ~/.voltcode/bin/volt
cp: cannot stat 'dist/voltcode-linux-x86_64/bin/volt': No such file or directory

Fixing that still errors out when running the locally built binary as well:
image
albeit with a slightly different error.

- Preserve library symlink targets during embedded Postgres extraction
- Validate required binaries and shared libraries before reusing an install
- Repair invalid installs automatically and improve shared-library failure guidance
- map uname x86_64 -> x64 and aarch64 -> arm64 to match build artifact names
- copy from packages/voltcode/dist, which is where build.ts writes outputs when run from repo root
- ensure ~/.voltcode/bin exists before copying
@rabsef-bicrym rabsef-bicrym force-pushed the fix/issue-7-arch-embedded-postgres branch from be8c027 to 82ff808 Compare February 27, 2026 19:17
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.

Volt crashes on startup with "UnknownError"

3 participants