Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 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
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
## 0.0.10-beta.10 — 2026-05-09
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Outdated

### Fixes
- `scripts/launch.ts`: trim the dashboard-startup ASCII wordmark from 10 to 8 char-rows (drop the `f`-top-serif row and the bottom row of the `p`-descender) so the chunky pixel-block banner doesn't read as a vertically-stretched rectangle on monospace fonts that render each cell ~2-3× taller than wide. All letters stay recognizable — `f` keeps its curl + crossbar, `p` keeps a stub descender, every other shape unchanged (#338).
- Read full session UUID from each Gemini JSONL's metadata header at project-page session-listing time (`lib/gemini-projects.ts`), so links route to a valid `[sessionId]` segment instead of the 8-hex filename prefix that the session detail route's `UUID_RE` check rejects (404). Hooks-section links were already correct because hook stdin carries the full UUID; this aligns the projects-section with that path (#336).
- Canonicalize OpenCode and Pi tool-input arg keys so the path-checking builtin policies actually fire on `read` / `write` / `edit` tool calls. OpenCode delivers args as `filePath` / `oldString` / `newString` / `replaceAll`; Pi delivers `path`. The failproofai builtins read `ctx.toolInput.file_path`, so the shape mismatch silently no-op'd `block-read-outside-cwd` (OpenCode), `block-env-files`, and `block-secrets-write` for both CLIs — letting an OpenCode session read paths outside its CWD without any deny, and letting Pi sessions write to `.env` / SSH-key paths unchecked. Note: `block-read-outside-cwd` already worked on Pi via an existing `tool_input.path` fallback at `src/hooks/builtin-policies.ts:796`, so only `block-env-files` and `block-secrets-write` were affected on Pi. Mirrors the `OPENCODE_TOOL_MAP` / `PI_TOOL_MAP` pattern from PR #293 with two new per-tool maps keyed by canonical PascalCase tool name: `OPENCODE_TOOL_INPUT_MAP` (Read / Write / Edit) and `PI_TOOL_INPUT_MAP` (Read / Write / Edit, top-level `path` only — Pi's nested `edits[{oldText,newText}]` array isn't a flat key rename). Both maps are mirrored inline in their respective shims so `.opencode/plugins/failproofai.mjs` and `pi-extension/index.ts` stay self-contained; MCP `mcp_*` and any unmapped tool pass through unchanged. Existing OpenCode users must regenerate their shim via `failproofai policies --install --cli opencode` to pick up the fix; Pi users must reinstall via `failproofai policies --install --cli pi` (#337).
- Route OpenCode project pages by encoded cwd (`encodeFolderName(worktree)`) instead of opencode's project name / basename, fixing the dashboard `/project/<slug>` 404 for OpenCode-only sessions and merging same-cwd OpenCode + other-CLI rows on the Projects page (#335).
Expand Down
8 changes: 4 additions & 4 deletions scripts/launch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,11 @@ export function launch(mode: "dev" | "start"): void {
// chunky lowercase "failproof ai" compressed with Unicode 2x2 quadrant
// block characters (▖▗▘▙▚▛▜▝▞▟ + ▀ ▄ █ ▌ ▐) and then horizontally
// scaled 4:3 (every 4th source-pixel column dropped) so the full
// wordmark fits in ~75 cols × ~10 rows — clean on any standard ≥80-col
// terminal.
// wordmark fits in ~75 cols × ~8 rows — clean on any standard ≥80-col
// terminal. Many monospace fonts render each cell ~2-3× taller than wide,
// so we drop the f-top-serif row and trim the p-descender to a single
// row to keep the wordmark from looking visually stretched vertically.
const bannerLines = [
" ███ ▐███ ▐█",
" ▐█▛▀▀ ▟█▖ ▟█▛▀▀ ▝▀",
" ██████ ▗████▌ ▝██▛ ██ ███ ▐██▙ ▗███ ▐██▙ ▗█████▙ ████▌ ▐█",
" ▀▜█▛▀▀ ▝▀▀▀▀█▙ ▄▙ ██ ▗▟▀▀▜▄▖ ▄▟▀▀▘ ▄▟▛▀▜▙▖ ▄█▀▀█▄▖▝▀██▛▀▀ ▀▀▀▀▙▄ ▐█",
Expand All @@ -29,7 +30,6 @@ export function launch(mode: "dev" | "start"): void {
" ▐█▌ ▝▀█████ ██▄▄██ ▐████▀▘ ██ ▀▜███▀▘ ▀▜███▀▘ ██▌ ▀█████ ▐█",
" ▝▀▘ ▀▀▀▀▀ ▀▀▀▀▀▀ ▐█▀▀▀ ▀▀ ▝▀▀▀ ▝▀▀▀ ▀▀▘ ▀▀▀▀▀ ▝▀",
" ▐█",
" ▝▀",
];
// Fall back to plain text on narrow terminals so the wide pixel-block art
// doesn't wrap and shred itself. process.stdout.columns is undefined when
Expand Down