feat(mavweb): /ecosystem page consuming Nexus/Praxis/Hexis + shell fixes

Add a read-only /ecosystem page that consumes the sibling services'
JSON APIs (Nexus entities, Praxis attention, Hexis capabilities),
fetched concurrently with honest per-panel error states. Siblings stay
headless — mavweb is their human surface (arch §16). Wired via mavweb
-nexus/-praxis/-hexis flags; mavweb joins the ecosystem compose network.

Fix mobile horizontal overflow across all pages: .content is a flex
child with default min-width:auto, so it refused to shrink below the
tables' intrinsic width. min-width:0 lets wide tables pan inside .scroll
instead of dragging the page sideways. Verified via CDP geometry check
(scrollWidth === clientWidth at 430px).

Also includes in-progress Ethos UI redesign, ecosystem deploy compose,
and planning docs.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
kami
2026-07-19 22:04:23 +04:00
parent 6c92f85d10
commit 5fe8f228c1
43 changed files with 1782 additions and 668 deletions
+14 -1
View File
@@ -24,6 +24,9 @@ services:
mavend:
<<: *image
command: ["mavend", "-config", "/opt/maven/config/mavend.json"]
# both nets: `default` keeps the `mavend` DNS name the other daemons reach
# (mavweb -> mavend:9100); `ecosystem` reaches nexus/praxis/hexis by name.
networks: [default, ecosystem]
# the key lives ONLY here. deploy/db_key.env holds MAVEN_DB_KEY=<base64-32B>.
env_file:
- ./deploy/db_key.env
@@ -76,9 +79,13 @@ services:
<<: *image
# voice.bind is 0.0.0.0:9100 in deploy/mavend.json so mavweb can reach it
# cross-container. Verified 2026-07-06.
command: ["mavweb", "-addr", ":9201", "-voice", "mavend:9100", "-core", "/run/maven/mavend.sock"]
command: ["mavweb", "-addr", ":9201", "-voice", "mavend:9100", "-core", "/run/maven/mavend.sock",
"-nexus", "http://nexus:9740", "-praxis", "http://praxis:8989", "-hexis", "http://hexis:9741"]
depends_on: [mavend]
ports: ["9201:9201"]
# ecosystem: reach the siblings by name for the read-only /ecosystem panel;
# default: keep resolving mavend:9100 for voice + the IPC socket peers.
networks: [default, ecosystem]
volumes:
- sockets:/run/maven
@@ -96,3 +103,9 @@ services:
volumes:
dbdata:
sockets:
networks:
default:
ecosystem:
external: true # created by deploy/ecosystem/docker-compose.yml
name: ecosystem