mirror of
https://github.com/getpaseo/paseo.git
synced 2026-07-29 12:01:31 +00:00
fix: repair beta Docker image
This commit is contained in:
@@ -29,6 +29,8 @@
|
||||
- Closing Claude Code sessions no longer leaves child processes running ([#1540](https://github.com/getpaseo/paseo/pull/1540) by [@TommyLike](https://github.com/TommyLike))
|
||||
- OpenCode no longer indexes your home directory by mistake ([#1704](https://github.com/getpaseo/paseo/pull/1704) by [@rex-chang](https://github.com/rex-chang))
|
||||
- ACP sessions load with the correct project folder and MCP server settings ([#1624](https://github.com/getpaseo/paseo/pull/1624) by [@theslava](https://github.com/theslava))
|
||||
- Docker images serve the bundled web UI from global installs
|
||||
- Docker images can extract downloaded local speech models
|
||||
|
||||
## 0.1.101 - 2026-06-26
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@ RUN set -eux; \
|
||||
curl \
|
||||
git \
|
||||
gosu \
|
||||
lbzip2 \
|
||||
openssh-client \
|
||||
tini; \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
@@ -48,6 +48,7 @@ RUN set -eux; \
|
||||
curl \
|
||||
git \
|
||||
gosu \
|
||||
lbzip2 \
|
||||
openssh-client \
|
||||
tini; \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
@@ -10,7 +10,8 @@ The image source lives in [`docker/`](../docker/).
|
||||
|
||||
The official image:
|
||||
|
||||
- installs `@getpaseo/server` and `@getpaseo/cli` from npm
|
||||
- installs `@getpaseo/server` and `@getpaseo/cli` from npm for stable images,
|
||||
or from source-built workspace tarballs for beta images
|
||||
- runs the daemon as the non-root `paseo` user
|
||||
- listens on `0.0.0.0:6767` inside the container
|
||||
- enables the bundled daemon web UI with `PASEO_WEB_UI_ENABLED=true`
|
||||
@@ -202,10 +203,10 @@ docker build \
|
||||
```
|
||||
|
||||
The Docker workflow builds the image on pull requests and on `main` as a
|
||||
non-publishing check. GHCR publishing follows the stable release cadence: only a
|
||||
stable `vX.Y.Z` tag push publishes `ghcr.io/getpaseo/paseo:X.Y.Z` and
|
||||
`ghcr.io/getpaseo/paseo:latest`. Beta tags and manual workflow runs build for
|
||||
validation only.
|
||||
non-publishing check. Stable `vX.Y.Z` tag pushes publish
|
||||
`ghcr.io/getpaseo/paseo:X.Y.Z` and `ghcr.io/getpaseo/paseo:latest`. Beta tags
|
||||
publish only the exact prerelease tag, such as
|
||||
`ghcr.io/getpaseo/paseo:0.1.102-beta.1`, and do not update `latest`.
|
||||
|
||||
The published image is multi-arch for `linux/amd64` and `linux/arm64`.
|
||||
|
||||
|
||||
61
packages/server/src/server/config.test.ts
Normal file
61
packages/server/src/server/config.test.ts
Normal file
@@ -0,0 +1,61 @@
|
||||
import path from "node:path";
|
||||
import { pathToFileURL } from "node:url";
|
||||
import { describe, expect, test } from "vitest";
|
||||
|
||||
import { resolveBundledWebUiDistDir } from "./config.js";
|
||||
|
||||
function fileUrlFor(...segments: string[]): URL {
|
||||
return pathToFileURL(path.join(path.parse(process.cwd()).root, ...segments));
|
||||
}
|
||||
|
||||
describe("server config", () => {
|
||||
test("resolves bundled web UI path from source-tree modules", () => {
|
||||
expect(
|
||||
resolveBundledWebUiDistDir(
|
||||
fileUrlFor("repo", "packages", "server", "src", "server", "config.ts"),
|
||||
),
|
||||
).toBe(
|
||||
path.join(
|
||||
path.parse(process.cwd()).root,
|
||||
"repo",
|
||||
"packages",
|
||||
"server",
|
||||
"dist",
|
||||
"server",
|
||||
"web-ui",
|
||||
),
|
||||
);
|
||||
});
|
||||
|
||||
test("resolves bundled web UI path from globally installed compiled modules", () => {
|
||||
expect(
|
||||
resolveBundledWebUiDistDir(
|
||||
fileUrlFor(
|
||||
"usr",
|
||||
"local",
|
||||
"lib",
|
||||
"node_modules",
|
||||
"@getpaseo",
|
||||
"server",
|
||||
"dist",
|
||||
"server",
|
||||
"server",
|
||||
"config.js",
|
||||
),
|
||||
),
|
||||
).toBe(
|
||||
path.join(
|
||||
path.parse(process.cwd()).root,
|
||||
"usr",
|
||||
"local",
|
||||
"lib",
|
||||
"node_modules",
|
||||
"@getpaseo",
|
||||
"server",
|
||||
"dist",
|
||||
"server",
|
||||
"web-ui",
|
||||
),
|
||||
);
|
||||
});
|
||||
});
|
||||
@@ -34,6 +34,14 @@ export function resolveBundledWebUiDistDir(moduleUrl: string | URL = import.meta
|
||||
return path.resolve(moduleDir, "..", "..", "dist", "server", "web-ui");
|
||||
}
|
||||
|
||||
if (
|
||||
path.basename(moduleDir) === "server" &&
|
||||
path.basename(path.dirname(moduleDir)) === "server" &&
|
||||
path.basename(path.dirname(path.dirname(moduleDir))) === "dist"
|
||||
) {
|
||||
return path.resolve(moduleDir, "..", "web-ui");
|
||||
}
|
||||
|
||||
return path.resolve(moduleDir, "web-ui");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user