Repository navigation
branch: zed-web-server.rs: feat/responsive-shell-and-storage-console - #65
Draft
ORESoftware wants to merge 3 commits into
Draft
ORESoftware wants to merge 3 commits into
ORESoftware wants to merge 3 commits into
Conversation
… console Two changes that share a stylesheet. **The UI is now mobile-first and installable.** The old stylesheet was written for a desktop and patched narrow with one breakpoint, which is how a few screens end up never being looked at on the device people actually open them on. Every rule now applies to a phone first and the two breakpoints only add room. Concretely: touch targets are 44px throughout, inputs are 16px so iOS stops zooming on focus, tables scroll inside their own box instead of widening the page, `viewport-fit=cover` plus `env(safe-area-inset-*)` handles the notch and home indicator, the breadcrumb hides rather than truncating, and the package page becomes content plus a sticky metadata rail on a wide screen. `prefers-reduced-motion` and `prefers-contrast` are honoured, focus rings are never removed, and there is a skip link. A web manifest, an offline page, and a service worker make it installable. The worker is deliberately narrow: it precaches the stylesheet, scripts, and icons and serves an offline page for failed navigations, but it never caches HTML — a package page can be private, and a shared on-device cache is the wrong place for anything whose visibility depends on who asked. It is served from `/sw.js` rather than `/static/sw.js` because a worker's scope is the directory it came from, and root scope is what the navigation fallback needs. Installed as a PWA there is no browser chrome at all, so a bottom tab bar carries the primary destinations. `app.js` is progressive enhancement only — copy buttons, the current-tab marker, service-worker registration — and everything works with it blocked. Both new assets are same-origin, so `script-src 'self'` needed no widening; a test now pins that, and pins the `default-src` fallback the manifest and worker rely on. **`/console/storage` describes the artifact backend.** The obvious version of this page frames Cloudflare's dashboard, which answers the question for exactly one provider and has to be rebuilt the day the bucket moves. Instead the page renders `zed-api-server`'s own provider-agnostic report, so it reads the same on R2, S3, Google Cloud Storage, MinIO, a directory, or process memory. It shows which backend is live, whether it is answering, what the registry believes is stored, and — given a published digest — whether the store still holds it. A test asserts the page contains no iframe and no vendor console link, because that is the property worth keeping. The web server holds no storage credential and never speaks to an object store: it makes one delegated GET with the viewer's own token, through the existing `delegated_get` helper, and rotates the session cookie onto whatever it renders. A digest is validated before it can become a request path. "The API is down" and "storage is down" render as different states, since the second is a finding and the first is a failure. Both repositories now carry the same `contracts/storage-status.v1.json` and assert their own decoder accepts it, so the API and this console cannot drift apart without a test failing — and the console ignores unknown fields, so the API can report more without a coordinated deploy. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Fvi78rjurJXbT9XYJv72by
"Reach parity with npm" is not a task anyone can pick up. A row saying the package page has no README because the read model exposes no readme column is. Feature-by-feature across the four reference registries, marked shipped, partial, or blocked, with the repository each remaining piece belongs to — the common case being that the UI is straightforward and the data plane is the gap, so the ticket belongs in zed-lib-core or zed-interfaces rather than here. Also records what the reference registries do not have, because parity is a floor. Four of those are already shipped — the dependency graph, the verifiable audit log, the vendor-neutral storage console, the local project registry — and one is the largest unclaimed differentiator in the product: polyglot packages, where one coordinate carries several ecosystems' slices and the consumer picks. No single-language registry has a concept for it, and the UI barely surfaces it. The suggested order is by what unblocks the most rather than by difficulty, and the file ends with the rule that keeps it worth reading: a change that closes a row edits the row in the same commit. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Fvi78rjurJXbT9XYJv72by
Salvage pass 2026-08-29: work that existed only in the working tree. Staged by explicit path (no -A); build output and key material excluded.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fleet sync 20260911 from the citadel Mac (~/codes/zed-pkg/zed-web-server.rs).
Branch
feat/responsive-shell-and-storage-consolecarries 3 commit(s) not onmain; 17 files changed, 2249 insertions(+), 134 deletions(-)Files:
Rules followed: no rebase, no stash, no reset, no force-push; conflicts (if any) are resolved semantically per oresoftware/my-ai/AGENTS.md before this is marked ready.
🤖 Generated with Claude Code
https://claude.ai/code/session_01G7RjB22qc4AaKq4zqeVBVY