Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions docs/deployment.md
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,12 @@ SANDBOX_HOST_WORK_PATH=/absolute/path/to/work/dir

Requires Docker socket access. The `SANDBOX_HOST_WORK_PATH` must be the **host-side** absolute path to your work directory (for bind mount resolution).

The app runs inside the container as the `gooseherd` user (`uid=1001`). If you
use a bind mount for `SANDBOX_HOST_WORK_PATH`, the host work directory should be
owned by `1001:1001`, or otherwise be writable by `uid=1001`. A bind mount
overrides the `.work` directory created in the image, so host-side ownership and
permissions control whether runs can create `/app/.work/<run-id>`.

Build the sandbox image before enabling:

```bash
Expand Down
11 changes: 11 additions & 0 deletions src/dashboard/html.ts
Original file line number Diff line number Diff line change
Expand Up @@ -366,8 +366,10 @@ export function dashboardHtml(config: AppConfig): string {
}
.main {
grid-area: main;
min-width: 0;
padding: 16px;
overflow-y: auto;
overflow-x: hidden;
}
.stack {
display: grid;
Expand All @@ -380,6 +382,7 @@ export function dashboardHtml(config: AppConfig): string {
display: grid;
grid-template-columns: 1fr;
gap: 12px;
min-width: 0;
}
.sidebar-head {
display: flex;
Expand Down Expand Up @@ -539,6 +542,7 @@ export function dashboardHtml(config: AppConfig): string {
50% { opacity: 0.5; }
}
.card {
min-width: 0;
border: 1px solid var(--border);
background: color-mix(in srgb, var(--panel) 92%, transparent);
border-radius: var(--radius);
Expand All @@ -549,15 +553,22 @@ export function dashboardHtml(config: AppConfig): string {
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
min-width: 0;
gap: 10px;
margin-bottom: 10px;
}
.toolbar > :first-child {
flex: 1 1 auto;
min-width: 0;
}
.summary-actions {
display: flex;
align-items: center;
gap: 6px;
flex-wrap: wrap;
justify-content: flex-end;
max-width: 100%;
}
.summary-actions .action-btn {
text-decoration: none;
Expand Down
Loading