Files
archy/docs/UX-BETA-2.1-HANDOFF.txt
T
yaya 18f9830800 Complete unified Cloud file apps and polish mobile UX
Connect installed Nextcloud and Immich accounts automatically after app setup, integrate their folders and indexed files into Cloud, and support private uploads, permission-checked deletion, and explicit sharing snapshots. Persist disconnect choices and retain advanced account setup.

Refine floating navigation, app cards, container icons, scroll fades, private-key dialogs, and federation graph request visibility across desktop and mobile.

Validation: cargo check and UI typecheck passed; 38 focused UI tests, 25 adapter tests including disposable Nextcloud/Immich integration, and persistent opt-out test passed. Chromium, Firefox, and WebKit desktop/mobile workflows passed. Requires UI/UX UAT approval from the maintainer before release.
2026-11-10 02:46:29 +00:00

166 lines
11 KiB
Plaintext

Archipelago UX preview handoff — 2026-11-09
Workspace: /home/yaya/Projects/archy
Branch: ux/beta-2.1
This is local UI work for review. No release or deployment has been performed.
Other agents own the public 2.0.3 release and beta 2.1 security/backend work.
Preserve unrelated pre-existing untracked files; do not add the whole tree blindly.
UI pull requests must begin: Requires UI/UX UAT approval from the maintainer
Preview
Archipelago: http://127.0.0.1:8100 (LAN host 192.168.63.105).
Mock backend: 127.0.0.1:5959; DEMO=1 prevents real container operations.
Preferred startup on Yaya's machine (updated 2026-11-10):
/home/yaya/.local/bin/archy-ux start
Stop/restart/status/logs: archy-ux stop|restart|status|logs.
User requested FIPS companion access EVERY time the UX preview is started.
Use this launcher instead of ad-hoc processes or npm start (the old generic
script kills processes by port). It runs the mock in DEMO=1 mode and checks
both frontend and backend readiness. User services are installed locally;
they do not automatically start the mock backend at boot.
Companion entry: Archy UX preview. Existing QR remains valid:
/home/yaya/Downloads/archy-ux-companion-qr.png
Mesh origin: http://[fd3e:67e3:88d6:a1e0:6499:8b6e:e999:f309]/
The enabled system service archy-ux-mesh forwards this address's port 80 to
127.0.0.1:8100. It starts after FIPS and retries if the interface isn't ready.
Both UFW and /etc/fips/fips.d/archy-ux-preview.nft persist the HTTP allowance
for the existing phone only (fd2b:a293:8d54:f587:4158:37a5:70f4:3c55).
Local HTTP success alone does not verify phone routing: the first attempt
missed the UFW layer, then the user confirmed access after that rule was fixed.
The QR uses this machine's real FIPS identity, not mock fips.status data.
Keep that identity/address stable. Mock login is entertoexit.
Installed units: ~/.config/systemd/user/archy-ux-{backend,vite}.service and
/etc/systemd/system/archy-ux-mesh.service. No node deployment is involved.
Manual fallback from neode-ui (local proxy/firewall must already be installed):
env -u ANTHROPIC_API_KEY DEMO=1 MOCK_BACKEND_HOST=127.0.0.1 MOCK_BACKEND_PORT=5959 VITE_DEV_SERVER_PORT=8100 node mock-backend.js
VITE_INDEEHUB_PREVIEW_PORT=2101 BACKEND_URL=http://127.0.0.1:5959 npm run dev -- --host 0.0.0.0 --port 8100
IndeeHub: /home/yaya/Projects/indee-archie-ux, branch ux/beta-2.1.
Its UX-PREVIEW.md documents mock launch and handoff details; preview port 2101.
Main UI changes already in the working tree
- Apps owns Goals and guided setup routes; Home Quick Start reuses Goals cards.
- Shared sticky desktop category/search rows, compact mobile tabs/floating nav,
dynamic bottom clearance for navigation, audio player and back buttons.
- Settings grouped into four sections with keyword search and separated cards.
- Wallet transaction detail views for Lightning, Cashu, Fedimint and Ark;
compact scrolling filters; incoming/outgoing review badges and mock history.
- Web5 card typography/icons, discovery fixtures, observer removal success/reset,
map label/rendering fixes and networking-profits empty state.
- Mesh map uses a keyless OSM tile source with attribution; device controls hidden.
- Optional app integration lookups no longer produce noisy launch toasts.
- IndeeHub floating header/sign-in, mock authentication bridge and safe areas.
Latest follow-up fixes
- Removed the second hard-coded detail background and navigation glitch trigger.
Route owner controls the only background layer; clicking Goals requires no reload.
- Goal steps now use a subtle full border instead of coloured left stripes.
- Shared BackButton sticks on desktop and darkens to #0a0a0a at 95% on scroll;
compact title rows stick together. Mobile retains its floating back control.
- Typing audio is silent for keyboard, welcome and intro; compatibility exports
remain no-ops. Other audio is unchanged.
- Sideload uses BaseModal with pinned footer and shared safe-area behaviour.
- HardwareMarketplace has visible animated relay search for phones/routers/LoRa.
- Disconnected Mesh defaults to a LoRa shopping group above Archipelago;
a rotating T-Deck introduces the same listing/detail flow. Real listings retain
signature/deletion/expiry validation. Demo offers/prices are explicitly samples.
Buy opens LoRa product details; no checkout backend was introduced.
- OpenWrt extra margin/spacer removed; showcase uses measured page clearance.
- Peer files: Node connections is top right on the Back row, Settings logout style.
Verification
Shared scenarios live outside the repository:
~/.local/share/browser-check/projects/archy-ux/
Browser command: ~/.local/bin/browser-check
Chromium override: BROWSER_CHECK_CHROMIUM_PATH=/usr/bin/chromium
Goal background + phone loader: Chromium/Firefox/WebKit, desktop and phone passed.
Back scroll + sideload: Chromium desktop/phone passed.
OpenWrt loader + desktop bottom gutter/no excess overflow passed in Chromium.
Typecheck and focused existing/new Vitest checks have passed during the session.
See /tmp/archy-* test reports for exact checks and environment warnings.
Physical companion safe-area/audio behaviour still needs real-device UAT.
Known asset issue
The horizontal rectangular bands near the top of bg-myapps.webp are present in
its source pixels, including every local copy. They are not an overlay in the
Goals view. The artwork has not been regenerated or replaced.
Final requested corrections — 2026-11-09
- Publishing goal walkthroughs now have per-session mock status, saved connection
choices, projects, drafts and revisions. The mock does not claim public hosting;
public publication/verification operations require a real node.
- Desktop back buttons pin independently of titles/descriptions, preserving their
left alignment. Connections/profits tabs share a sticky row ABOVE page headings.
Connections also has a compact DID/Copy/Rotate card at the right of that row.
- Mobile back buttons retain translucent glass and pages reserve their clearance.
Peer-files icon and Node connections share one compact top row.
- Restored Web5's 50% black image overlay inside the background layer, removed
Network's empty refresh-indicator row, and fitted Welcome Noderunner at 320px.
- Node details show name/hostname. Mobile AIUI selection follows the route, so it
does not depend on the current iframe implementation.
- Production login omits Replay Intro and Onboarding reset controls. Settings
identity/Tor/hostname/version/status/copy icons restored and mobile search gap fixed.
- LILYGO T-Echo replaces the no-device chat illustration. Existing Buy buttons
remain in place and navigate to full-height product browsers:
/dashboard/mesh/products
/dashboard/server/openwrt/products
/dashboard/setup/non-surveillance-phone/products
Each returns to its originating screen. Existing seller details and truthful
discovery/sample labelling remain; no payment/checkout implementation added.
- Scope for this handoff is neode-ui plus this document. Unrelated files outside
that scope were not included. Public catalog prebuild drift is excluded.
- Current local preview was started in ordinary mock development mode on 5959
with Vite on 8100. For isolated release review prefer the DEMO=1 command above.
- Shared browser scenarios/reports stay local, outside the repository. Main fixes
passed Chromium/Firefox desktop+phone and WebKit desktop+phone (normal SPA
navigation; hard reloads during RPCs can produce a WebKit access-control error).
Peer-header/settings restoration and production-login checks passed Chromium.
- Product-page mobile controls now sit BELOW products; cards use compact
spacing and the page measures the floating back control for exact clearance.
Relay loading rings cannot flex-shrink into ellipses. Navigation animation
completion re-measures 3D showcases; back buttons cannot pin at scrollTop 0.
Final verification for review publication
- Production build passed (vue-tsc -b and Vite/PWA build).
- 125 tests passed across the 9 changed test files; 55 targeted hardware,
transaction, connection, publishing and route tests also passed (overlapping).
- Hardware Buy entry points, standalone viewport sizing and return navigation
passed Chromium desktop and phone. Compact mobile product controls passed.
- UI/UX UAT approval remains required before integrating/releasing these changes.
Indeehub live workspace follow-up — 2026-11-10
- archy-ux now manages archy-ux-indeehub.service alongside the existing demo.
Source remains /home/yaya/Projects/indee-archie-ux; dual-stack port 2101, mock data.
- Existing companion FIPS host now allows port 2101 from the same phone only,
persisted in UFW and /etc/fips/fips.d/archy-ux-indeehub.nft.
- Preview HTML supplies a mesh dashboard-port override (80); local remains 8100.
- Chromium phone and Firefox desktop/phone passed native mock sign-in and
Backstage over the FIPS URL from this computer. Actual phone UAT remains user-run.
WebKit opens Backstage but reports cross-origin frame exceptions.
- No real node deployment or production payment/publication backend was started.
Cloud connected file apps — 2026-11-10
- Connect manages account connections; it is not a second file browser. Nextcloud
Files and Immich Files use the normal folders, cards, viewer and sharing dialog.
Their indexed files join My Files and search.
- Installed apps discover automatically after native account setup. A dedicated
token is created in the verified installed runtime for its sole administrator;
passwords remain untouched. Multiple administrators need an explicit account
choice through advanced setup. Immich helper is verified against 2.7.4.
- Disconnect persists an opt-out; refreshing cannot silently reconnect it.
Reconnect normally requires just choosing the installed app.
- Source uploads use the standard toolbar/drop flow and a private, CSRF-checked
streaming endpoint. Nextcloud refuses replacement files; Immich accepts media.
Delete checks account permissions/revision; Immich deletes to trash. Source
indexes refresh after mutations. Sharing still makes an explicit local snapshot.
- Both authorization helpers and actual production adapters were tested against
disposable local Nextcloud29/Immich2.7.4 containers, then containers removed.
25 focused adapter tests and the persistent opt-out check passed; 38 UI tests
and typecheck passed. Upload/reconnect/delete/index/search passed all six
Chromium/Firefox/WebKit desktop/phone cases. Browser scenarios stay local.
- Backend changes are prepared here, not deployed to shared nodes. Existing
shared-platform release/integration ownership remains with the other agent.
- Final full cargo check passed with existing warnings. No commit, push, shared-node
deployment, release or public film publication was performed in this continuation.