Commit Graph
159 Commits
Author SHA1 Message Date
pastilhasandClaude Opus 4.8 e68c8edc23 task runner: "convert all, keep every track" option for mixed-layout folders
when a folder has mixed audio/subtitle layouts, the mismatch banner now offers a
toggle: convert the matching group (pick tracks, skip the rest) OR convert every
video keeping all audio + all subtitles (no picking, nothing skipped). the second
mode hides the pickers and clears the track-selection inputs so run.sh keeps
everything. only shown for tasks with track pickers (Convert Video).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-22 13:16:11 +00:00
pastilhasandClaude Opus 4.8 068cbfe32b file browser: run a task on a multi-selection
selecting several files/folders and running a task now runs it on the whole
selection instead of just the right-clicked item. reuses the folder + include
mechanism: the run targets the current folder scoped to the selected files
(and everything under selected folders). track-picker tasks scope their probe
to the selection too.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 08:38:39 +00:00
pastilhasandClaude Opus 4.8 821e7ab6c4 video player: fill the frame in fullscreen
the video used max-w/max-h so a low-res source stayed at native size surrounded
by black. switch to w-full h-full object-contain so it scales up to fill the
player (windowed and fullscreen) while preserving aspect ratio.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 07:13:11 +00:00
pastilhasandClaude Opus 4.8 a2ca5b0fcd task runner: subtitle_edit input type for the subtitle editor
renders each subtitle as a keep checkbox + editable label field, seeded from the
file's current tracks. reuses the existing probe / folder-grouping / include
plumbing, so it works on a single file or a whole season.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 06:04:20 +00:00
pastilhasandClaude Opus 4.8 ae1ccdec33 task runner: batch track selection for folders
converting a folder now recursively probes every video and groups episodes by
track layout (audio language+channels, subtitle language). the pickers are
driven off the largest matching group; episodes with a different layout are
listed as skipped and converted separately. adds a /probe-folder endpoint and
passes the majority file list to run.sh as INPUT_INCLUDE.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 05:21:01 +00:00
pastilhasandClaude Opus 4.8 0f2b71562a task runner: probe video files and let you pick which audio/subtitle tracks to keep
convert video's task modal now probes a single file on open, lists its audio
and subtitle tracks as inline checkboxes, and passes the selection to the
script. audio defaults to all kept, subtitles to none; a "none" sentinel keeps
empty (folder mode) meaning keep-all.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 04:47:09 +00:00
pastilhasandClaude Opus 4.8 8c9bb9a68e video player: server-side audio track selector
Add /file-browser/audio-tracks (list) and raw?audio=N (serve the video with
a chosen audio track via a cached -c copy remux, byte-range seekable). The
player shows an always-visible selector outside the controls; switching
reloads the source and restores the playhead. Works in Chromium, which
doesn't expose the audioTracks API.

Temp remux file keeps the real extension (a .tmp suffix breaks ffmpeg's
muxer selection); concurrent requests for a track share one remux.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 04:04:47 +00:00
pastilhasandClaude Opus 4.8 921413ca4d lower the task-completion chime volume to a quarter
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 02:48:01 +00:00
pastilhasandClaude Opus 4.8 06bd8a5821 video player: subtitle track support with a selector
Add /file-browser/subtitles (list text subtitle tracks) and /subtitle-vtt
(extract one as WebVTT on demand); the VideoRenderer fetches the list,
renders <track> elements, and shows a CC selector to switch/turn off subs.
Track labels prefer title, then handler_name (mp4), then a real language,
falling back to Track N — so untagged tracks aren't shown as "und".

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 02:38:52 +00:00
pastilhasandClaude Opus 4.8 5fd3d4faac file browser opens at home instead of restoring the last path
Navigation is now session-local state that always starts at home. The
unscoped browser still mirrors its folder into files/currentPath so the
Create Dashboard flow keeps defaulting a new dashboard's cwd to it.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-20 23:46:15 +00:00
pastilhasandClaude Opus 4.8 82d0e9afd6 remove ffmpeg video transcode, back to native-only playback
Drop the /transcode (and dead /transcode-audio) routes and the frontend
mkv/avi transcode wiring. Only browser-native formats (mp4, webm, mov,
m4v, ogv) are classified as video now; other containers fall through to
the generic file view.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-20 23:37:14 +00:00
pastilhasandClaude Opus 4.7 e0bfc3d961 serve static assets from local public/ instead of static.officer.dev, simplify gmail history 404/410 handling
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-30 17:07:55 +00:00
pastilhasandClaude Opus 4.6 ea8113e61d pipeline: add activity timeout and waiting indicator for local models
Agentic steps now have a 5-minute inactivity timeout (non-Claude-Code
models only) so stalled local LLM requests fail with a clear error
instead of hanging forever. A "Waiting for model" indicator is emitted
every 10s and shown in the pipeline UI stats bar, clearing as soon as
the model starts responding.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 10:56:39 +00:00
pastilhasandClaude Opus 4.6 92da03fcff pipeline executor improvements, proxy refresh, task runner step list
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 07:25:11 +00:00
pastilhasandClaude Opus 4.6 ef6402a827 fix pipeline stop, jobs link navigation, and seed quote stripping
- Fix stop: abort poll now rejects the promise after killing the agent process
- Fix jobs link: close modal before navigating, use react-router navigate
- Fix seed parser: strip quotes from step input values (delete_source: "true")

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 05:32:35 +00:00
pastilhasandClaude Opus 4.6 53c78c76cb add tag-album and clean-playlist-files tasks, script step support, stop fix, rename fix
- New tag-album task: renames tracks to NNN format, sets ID3 tags via mutagen
- New clean-playlist-files task: deletes .cue, .m3u, .nfo and similar junk files
- Pipeline executor now supports script-mode steps (runs directly, no agent)
- Build discography pipeline: convert-audio → clean-playlist-files → prepare → fetch → tag
- Fix stop button: abort signal now kills running agent processes
- Fix job manager: broadcast stopped/error events to WebSocket viewers
- Fix file browser rename: delay focus to avoid context menu close race, left-align input

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 04:10:14 +00:00
pastilhasandClaude Opus 4.6 5e38343f44 add pipeline job management with /jobs pages and per-step output viewer
- Pipeline jobs now persist to DB with progress tracking and cost accumulation
- Jobs survive WebSocket disconnects with in-memory event buffer replay
- New /jobs list page with search, status badges, and cost display
- New /jobs/:id detail page with live WebSocket attachment and REST fallback
- Two-column layout using WorkspaceLayout for resizable steps/output panels
- Streaming messages tagged with stepIndex/iterationLabel for per-step output grouping
- TaskRunnerModal links to job detail page once job is created
- Dock entry added for Jobs page

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 08:48:50 +00:00
pastilhasandClaude Opus 4.6 22c60d4a57 add pipeline task system, agentic music tasks, copy buttons, and pi-bridge cleanup
- Pipeline mode: new task mode that chains agentic tasks sequentially with
  foreach/subdirectory iteration and skip_if conditions
- Pipeline executor backend (WebSocket at /api/tasks/pipeline/ws) with
  support for both Pi and Claude Code models
- Frontend PipelineRunner component with step progress, streaming output,
  and aggregate cost tracking
- New agentic tasks: prepare-discography, fetch-album-info, build-discography
  (pipeline combining both)
- Seed parser extended to handle pipeline steps in frontmatter config
- CopyButton component added to assistant bubbles, error bubbles, and
  tool input/output sections
- Removed obsolete SearXNG/Apify/browser relay code from pi-bridge

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 20:20:20 +00:00
pastilhasandClaude Opus 4.6 2caccc183c generalize convert-to-mp3 into convert-audio with selectable target format
- rename task to convert-audio, support mp3/flac/wav/ogg/aac/opus targets
- add options input type with selectable pill buttons in UI
- extend seed script parser to handle YAML list properties (options)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 16:42:44 +00:00
pastilhasandClaude Opus 4.6 729ffb930b add task input form and improve script runner output
- fetch task input definitions from API and render configurable inputs
- boolean inputs render as No/Yes toggle (e.g. delete_source)
- auto-filled inputs (file_path) are hidden from the form
- wrap script output in dark pre/code block with copy button
- fix ffmpeg -nostdin for batch directory processing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 16:35:48 +00:00
pastilhasandClaude Opus 4.6 f32f427972 script-mode task execution — database-backed tasks with direct script runner
Tasks now live in the database (mode: script or agentic). Script-mode tasks
bypass the agent entirely — the implementation is materialized to a temp file
and executed directly, with stdout/stderr streamed to the UI via WebSocket.

Includes convert-to-mp3 as the first native script task.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 16:07:59 +00:00
pastilhasandClaude Opus 4.6 2f15214cdb match selected provider button style to locked state for better visibility
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 00:12:14 +00:00
pastilhasandClaude Opus 4.6 49cd559c8a tool registry, claude tool awareness, and model selector fix
- Add agent-agnostic tool registry (tool-registry.ts) that discovers tools from disk
- Embed tool-loader extension as platform infrastructure (ensure-tool-loader.ts)
- Inject tool context into Claude prompts on first message
- Add marketplace tool sync (sync-marketplace.ts)
- Fix model selector defaulting to claude-code when no model explicitly selected
- Exclude tool-loader-source.ts from tsconfig (Pi-specific deps)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 11:55:38 +00:00
pastilhasandClaude Opus 4.6 b896515b2c fix message duplication on auto-save after resume
The PUT endpoint was re-merging old DB messages (which already included
previous merges) with disk messages on every turn, causing duplication.
Now the client passes resumedMessageCount so the server always slices
only the original pre-resume messages before concatenating.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 08:23:31 +00:00
pastilhasandClaude Opus 4.6 60230ccfec fix save indicator timing and auto-save history loss on resume
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 21:27:31 +00:00
pastilhasandClaude Opus 4.6 0e0be3327e dashboard chats: auto-load latest saved session for context on mount
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 20:46:09 +00:00
pastilhasandClaude Opus 4.6 8f46f9170a fix terminal state key leaking phantom dashboards; fix infinite loop in chat panel resume
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 20:39:44 +00:00
pastilhasandClaude Opus 4.6 406d8f9e54 saved sessions: make routable via /chat/saved/:id URLs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 20:15:36 +00:00
pastilhasandClaude Opus 4.6 2a8df0def1 saved sessions: replace transient history with persistent DB storage and auto-save
- Add saved_sessions table and CRUD endpoints (save, list, resume, update, delete)
- Save is instant (no LLM summarization), stores exact conversation with tool calls
- Resume loads full message history into chat UI, sends transcript to agent on first message
- Auto-save updates DB after every agent response once a session is saved
- Delete old filesystem-based session/group management (sessions router, useChatSessions, useChatGroups)
- Clean up ChatHeader, SessionList, ChatDetailPanel for saved sessions flow

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 13:36:25 +00:00
pastilhasandClaude Opus 4.6 7bbcccabf1 wip: remove opencode, searxng, resources; fix user settings read
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 07:27:19 +00:00
pastilhasandClaude Opus 4.6 ed67cfa8e9 terminal auto-reconnect and connection indicator in panel header
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 04:58:14 +00:00
pastilhasandClaude Opus 4.6 3df47bb48d shared group provisioning, upload context menu, go path fix
- provision linux users with pastilhas:officerdev ownership so server
  can always read/write, terminal users get group access
- add officerdev shared group setup to setup.sh
- move go install to ~/.local/go with GOPATH at ~/.local/go-path
- add upload file/folder items to file browser context menu

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 02:34:38 +00:00
pastilhasandClaude Opus 4.6 74894b0c35 hide dotfiles in super admin home directory, disable toggle
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 01:37:42 +00:00
pastilhasandClaude Opus 4.6 451a61afb4 fix cliamp panel header, home dir lookup, and go install path
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 01:30:15 +00:00
pastilhasandClaude Opus 4.6 c7d509b725 scope file search to current directory
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 00:58:10 +00:00
pastilhasandClaude Opus 4.6 c66bbfa379 add dictate and download video toolbar buttons, reorder context menu
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 00:54:45 +00:00
pastilhasandClaude Opus 4.6 9fedbe02d4 use teal icon color for file browser toolbar buttons
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 00:46:59 +00:00
pastilhasandClaude Opus 4.6 7bfa36e5cf open ocr/tts/transcribe results in dual panels from file viewer
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 00:42:02 +00:00
pastilhasandClaude Opus 4.6 b75f954b0f open ocr/tts/transcribe results in dual panels from file browser
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 00:30:30 +00:00
pastilhasandClaude Opus 4.6 cce8738e89 fix stale selection after double-clicking folder in file browser
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 00:11:00 +00:00
pastilhasandClaude Opus 4.6 0a39c5043a add dictate option to file browser context menu
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 00:07:01 +00:00
pastilhasandClaude Opus 4.6 6a6ed5487d save ocr/tts/transcription results next to source file from context menu
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 23:52:57 +00:00
pastilhasandClaude Opus 4.6 188e91920a add /settings/ai route with role-aware model management
Two-tier model policy: system policy (admin, allowedModels) controls
member access, per-user hiddenModels controls personal visibility.
All model selectors now use useUserVisibleModels. Moved providers
and model visibility out of system settings, AI models out of profile.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 21:36:58 +00:00
pastilhasandClaude Opus 4.6 79668e436b remove stale homeRoot state from file viewer and dashboard creation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 19:42:30 +00:00
pastilhasandClaude Opus 4.6 eeb3155cff add useServerEnvironment hook with document title prefix
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 19:36:05 +00:00
pastilhasandClaude Opus 4.6 d33c7653d4 fix list item text color in light mode for projects and dashboards
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 19:11:08 +00:00
pastilhasandClaude Opus 4.6 d62280176a remove HomeDirSelector, use HOME_DIR for super admin file browser root
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 19:05:29 +00:00
pastilhas 98a6a69477 group select chats 2026-03-04 15:51:55 +00:00
pastilhas ef13f96d36 fix(pi): add snap node compatibility diagnostics and documentation
- Added detailed error logging to detect snap node compatibility issues
- When Pi process exits with code 1, log helpful diagnostic info including node path
- Add hint to check for snap node and reinstall via apt/nvm
- Create SNAP_NODE_COMPATIBILITY.md with full troubleshooting guide
- Document root cause: snap node has file descriptor incompatibility with Bun.spawn stdin pipes
- Provide clear installation instructions for NodeSource and nvm alternatives
2026-03-04 01:45:36 +00:00
pastilhasandClaude Opus 4.6 40a9768cb3 claude-code streaming chat, desktop remote viewer, new-automation route, tiktok task v4, misc fixes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 20:00:45 +00:00