Merge development_mik_6_1 into development #39

Merged
mik-tf merged 24 commits from development_mik_6_1 into development 2026-03-18 06:26:18 +00:00
Owner
No description provided.
Songs island:
- Add right-click context menu with Play, Edit, Delete actions
- Add delete confirmation dialog (matches Files island pattern)
- Add delete_song method to MusicService
- prevent_default on all containers to block browser context menu

Files island:
- Add prevent_default on content area, file list containers, empty state
- Fixes browser right-click leaking through on empty areas

Store island:
- Fix app IDs to match IslandRegistry (installs now affect the dock)
- Add missing store entries: photos, songs, books, intelligence, call, etc.
- Remove duplicate notify_hero_zero (RebuildNotification handles it)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Songs: Add document-level contextmenu listener via web-sys to
synchronously prevent browser default (Dioxus async handlers
can't block native menu). Fix context menu position to use
position:fixed matching client coordinates.

Files: Add oncontextmenu handler for empty areas below file list
with paste menu support. Add stop_propagation on file items to
prevent bubbling. Set min-height:100% on list containers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Complete Store island rewrite: removed OSIS dependencies, all compiled-in
  apps show as installed with rich card UI (icon, badge, category, description)
- Full-width responsive grid layout with search and category grouping
- "Open" button dispatches hero:open-island custom event to launch islands
- Fix Intelligence Hub metadata ID from "bot" to "intelligence" so Store's
  Open button correctly opens the Intelligence island window
- Songs context menu fix (carried from earlier session work)

Deployed and verified on herodev2.gent04.grid.tf

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Songs: full music player with seek bar, volume, prev/next, auto-advance
- Songs: edit dialog for renaming songs via right-click context menu
- Songs: update_song service method using song_set RPC
- Fix Foundry iframe URL: hero_forge_ui → hero_foundry_ui

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Separate Store entries: Forge (Forgejo git) and Foundry (Fossil SCM)
- Fix forge island URL: hero_fossil_ui → hero_foundry_ui, rename to Foundry
- Fix forgejo Store entry name: was "Foundry", now correctly "Forge"
- Songs: use Dioxus ontimeupdate/onended on audio element instead of
  manual JS event listeners that only attached once on mount
- Songs: replace hardcoded dark colors with CSS variables for theme support
- Songs: fix edit dialog input background var name (--color-bg → --color-background)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Dioxus ontimeupdate events on <audio> elements don't fire reliably
in WASM. Switch to setInterval polling (250ms) that reads
audio.currentTime() directly. Also detects track end via audio.ended().

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Rename hero_archipelagos_forge → hero_archipelagos_foundry to match
the actual service it wraps (hero_foundry_server/ui, Fossil SCM).

- Directory: embed/forge/ → embed/foundry/
- Package name: hero_archipelagos_forge → hero_archipelagos_foundry
- Component: ForgeApp → FoundryApp
- Island ID: "forge" → "foundry"
- Store entry ID: "forge" → "foundry"

The forgejo crate (hero_archipelagos_forgejo) remains unchanged —
it correctly wraps the Forgejo git forge (hero_forge_ui).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Dioxus 0.7 WASM does not reliably propagate raw HTML id attributes to
rendered DOM elements. Changed get_audio_element() to use
querySelector("audio") which finds the element by tag name instead.

This fixes the seek bar staying at 0:00 despite audio playing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Consolidate Forge/Foundry under unified Foundry brand:
- embed/forgejo → embed/foundry_ui (end-user Foundry dashboard)
- embed/foundry → embed/foundry_admin (admin/API/docs tool)
- Update workspace Cargo.toml members and island registry

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Dioxus 0.7 use_effect expects () return, not a cleanup closure.
Use use_drop + signal for interval cleanup instead.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
is_playing prop was copied to a plain bool, so use_effect never
re-ran when it changed. Wrap in a signal for reactive tracking.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
New hero_archipelagos_videos crate with:
- VideoService client wrapping OSIS media SDK
- VideoList component with upload, context menu, and playback
- VideoPlayer component with HTML5 <video>, seek, volume, play/pause
- Edit/delete dialogs following Songs pattern
- Film strip icon, blue (#3b82f6) accent color

Workspace updated to point hero_osis_sdk to development_mik_6_1 branch
(which has the Video/VideoPlaylist schema and generated types).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Required when the web feature is enabled since duration.set() is
called inside the interval callback.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add browser Fullscreen API support (requestFullscreen/exitFullscreen),
click-to-play/pause on video area, double-click to toggle fullscreen,
back-to-playlist button, and player-focused layout that hides the video
list when a video is selected.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Updated view descriptions for knowledge and island metadata.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
"Prompts" is more intuitive for users than "Templates".
Also accept "prompts" as alias in tab routing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fetch available models from hero_shrimp /api/config on mount
- Model selector dropdown in header with Auto (default) option
- Pass selected model to /api/chat requests

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Songs: 3 per context (acid_trumpet, gymnopedie_no1, there_it_is), orphan TOMLs removed
- Embedder: ensure_models_downloaded() in lib, called from hero_osis_server init
- AI Assistant: SSE parser for Shrimp responses, message field fix
- Auth/Redis SSO: postMessage token from island components + sso-login endpoint
- AI stop button with AbortController
- Multi-conversation support (Shrimp backend + UI sidebar + localStorage persistence)

Issue: lhumina_code/home#23

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- hero_services: add socat bridge TCP:3377→hero_osis_ui.sock for hero_biz,
  delete hero_cloud.toml (replaced by hero_compute)
- hero_archipelagos: compute island → hero_compute_ui, sidebar rename
  fix (onkeydown+onblur), delete confirmation dialog, sidebar styling
- hero_auth: SSO in base.html (covers setup+login+all pages)
- hero_shrimp: wrap persistMessage in try-catch to prevent crash

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
New hero_voice_ui iframe embed with theme sync and SSO auth,
following the redis island pattern. Microphone permission enabled.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace response.text().await (waits for entire stream to close)
with ReadableStreamDefaultReader that reads chunks as they arrive.
Breaks out as soon as the 'done' event is received, preventing
infinite spin when the LLM is slow or running multi-step agent tasks.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- response.as_raw() does not exist in gloo-net 0.6.0; use response.body()
- decode_with_buffer_source takes &Object; use decode_with_js_u8_array for Uint8Array
- Add TextDecoder, ReadableStream, ReadableStreamDefaultReader web-sys features

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
feat: AI delete modal + rename Cloud to Compute
Some checks failed
Build and Test / build (pull_request) Failing after 17s
a55196c70b
- Replace browser confirm() with Dioxus signal-driven modal for conversation delete
- Rename Compute island display name from "Cloud" to "Compute"

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
mik-tf merged commit a10f792877 into development 2026-03-18 06:26:18 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lhumina_code/hero_archipelagos!39
No description provided.