Skip to content

Fix dist exec bits and device table overflow - #118

Open
vladimirperovic wants to merge 7 commits into
mainfrom
fix/dist-exec-bits
Open

Fix dist exec bits and device table overflow#118
vladimirperovic wants to merge 7 commits into
mainfrom
fix/dist-exec-bits

Conversation

@vladimirperovic

Copy link
Copy Markdown
Owner

Summary

  • make dist-amd64/dist-arm64 preserve executable bits on init.d/pppoe-wan, init.d/cloudflared and ip-up.d-minimalrouter-qoos; a fresh checkout previously produced an archive that failed ValidateApplianceFileModes at router-update stage time (appliance executable bit is missing: init.d/pppoe-wan)
  • connected devices: drop the redundant Online label (activity cell now shows only the lease countdown), lower the 1160px table floor and slim fixed columns so Actions never clip; long hostnames wrap instead of forcing horizontal scroll
  • DHCP reservations: rows wrap instead of pushing Wake/Remove past the card edge, MAC/IP codes stay intact

Verification

  • pnpm --dir web lint
  • pnpm --dir web test (8/8)
  • pnpm --dir web build
  • signed dist built with RELEASE_VERSION=0.1.6 staged and activated on the live appliance; routerd/router-applyd healthy from the new slot

A fresh checkout carries init.d/pppoe-wan and init.d/cloudflared as
100644, so make dist-amd64 produced an archive whose appliance payload
failed ValidateApplianceFileModes at router-update stage time
(appliance executable bit is missing: init.d/pppoe-wan). Copy the
modes that routerd.initd and router-applyd.initd already have and
enforce them explicitly after the copy, matching the executable
contract required by slot staging.
The connected-devices table forced a 1160px min-width with fixed
230px/270px columns, so on narrower effective viewports the Actions
column ran past the container edge and clipped the Reserve IP and
Pause Internet buttons. Let the table compress instead: lower the
floor, slim the fixed columns, wrap long hostnames, and allow DHCP
reservation rows to wrap while keeping MAC/IP codes intact. Drop the
redundant Online label - a row in Connected devices is online by
definition - so the activity cell only shows the lease countdown.
Connected devices gains a Data column fed by the accounting snapshot
already loaded for the page: current-month rx+tx per device, shown as
105 MB / 123 GB style magnitudes, hidden entirely when accounting is
disabled. DHCP reservations gains Edit so changing a hostname or
address no longer requires remove-and-recreate; duplicate checks now
ignore the lease being edited and the form switches into save/cancel
mode while editing.
…delta

- Connected devices: Wake button for offline devices reuses the
  existing /api/v1/network/wol endpoint instead of being limited to
  the reservations table
- Tunnel port forwards: Edit fills the composer and updates a rule in
  place; no more remove-and-recreate for port changes
- Custom firewall rules: Edit name/direction/action/match inline
- DNS filter profiles: Edit opens the existing scheduler modal pre-
  filled from the stored day windows and preserves enabled state;
  normalizeDayWindows is exported so the grid can be rebuilt
- WireGuard peers: Rename with an inline form through applyConfig
- Traffic: month-over-month percentage next to the active total

Gateway window tabs (1h/24h/7d/30d) were reviewed and already exist.
The overview memory figure is MemTotal minus MemAvailable, which on a
quiet appliance mostly measures reclaimable kernel page cache - a 90 MB
workload reads as 300 MB after the cache fills. Telemetry now also sums
resident memory across userspace processes from /proc/<pid>/stat (thread
group leaders only, so threads are not double counted) and the overview
memory card shows that application footprint next to the cached-inclusive
figure. QEMU host-side overhead lives outside the guest and stays out of
scope for the appliance dashboard.
…pling

- DHCP reservations and custom firewall rules adopt the connected
  devices table design (shared elegant-* classes, right-aligned action
  column) so buttons stop wrapping and row borders stay intact
- Public IP history: compact redesigned rows with old address struck
  through, scrollable after 12 entries
- WireGuard peer rows: readable type sizes for name, state, labels and
  transfer counters
- Snapshots gain DELETE /api/v1/snapshots/{id} with a confirmed Delete
  button next to Restore
- Boot activity samples every second inside the startup window instead
  of every 30 seconds
Service recovery buttons become icon+hint tiles in a responsive grid
with hover lift and per-action busy state instead of bare unpadded
buttons. Public IP history drops the doubled divider, gains side
padding and a subtle hover row highlight.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant