Commit Graph
75 Commits
Author SHA1 Message Date
chick 8b7df8cb65 fix(instances): release the hub binding before forgetting a node
Deletion now follows the published contract: prepare returns the one-time
token and the console spends it on DELETE /api/v1/instances/:id with
If-Match, where the generic execute endpoint had been rejecting it as an
operation the safe transport cannot replay.

An online device is told to release its own binding first. A refusal keeps
the record and reports UNBIND_FAILED on the job item so the console can say
why the node is still there; a node that never answers a heartbeat is
forgotten locally.
2026-09-05 19:52:27 +08:00
chick 5016586922 test: give process-spawning suites room and pin the fused behaviour
The runtime executables bind fixed ports, so the production command check now
skips instead of failing against a live deployment, and the canary check takes
a reserved free port. Raise the default test timeout for the SQLite and browser
suites that were only slow under full-suite parallelism.
2026-09-05 18:53:05 +08:00
chick a75badeb58 feat(web): rebuild the console around the fused control plane
Render the Hub feature set in the existing Animal Island styling: fleet
messages, notification centre, log centre, organisation panel, per-instance
device module panels and the settings backup, connection and maintenance
surfaces.
2026-09-05 18:53:04 +08:00
chick f9186bd851 feat(api): absorb the Hub control plane into the local instance model
Add central notification channels, rules, queue and delivery logs, fleet
organization groups and tags, device discovery, the device action catalog,
instance module reads, the log centre, connection settings and system
maintenance as native /api/v1 routes backed by the existing secret store,
audit trail and pinned upstream transport.
2026-09-05 18:53:04 +08:00
chick f11877f13e feat(contracts): share notification, organization and device capability models
Move the Hub channel table, organization tags and device capability definitions
into the workspace packages so the control plane and the console validate the
same contract, and refresh the frozen upstream evidence for the new paths.
2026-09-05 18:52:54 +08:00
chick 03fa2e6c7b chore: keep local runtime data out of version control 2026-09-05 18:52:53 +08:00
chick bbd94b5672 feat(ui): simplify fleet cards by moving edit/delete into detail
Hide instance IDs and config/delete controls on overview cards; keep
service/system restart only, with edit still available from detail.
2026-07-22 00:20:32 +08:00
chick 3c7018a792 feat(ui): refine fleet search/filter toolbar with status chips
Adopt Portainer/Beszel-style fleet controls: prominent search, status
facet chips with counts, active filter chips, result count, and
primary-row sort/select. Keep advanced filters collapsed for secondary
facets. Tests and production dist rebuild for gateway 8788.
2026-07-21 23:31:08 +08:00
chick 7d0363d275 feat(ui): topbar settings, hide dev badge, premium fleet cards
Collapse the redundant left workspace nav (overview is already the home
surface) and move Settings into the top bar. Hide placeholder `dev`
version badges. Restyle fleet cards with softer elevation, status
summary chips, hover sheen, and reduced-motion-safe entrance motion.
2026-07-21 23:14:37 +08:00
chick 9ea8021cce feat(fleet): card-only UI with progressive load and restart ops
Drop the redundant advanced table so fleet stays resource-first cards.
Keep multi-select batch service/system restart via prepare→execute, card
restarts, overview system ops, and progressive fleet loading.
2026-07-21 22:56:55 +08:00
chick ebed4c1969 feat(auth): allow trusted remote bootstrap and add installer 2026-07-19 21:10:16 +08:00
chick 49ee4e6570 feat(web): redesign fleet cards and instance workspace 2026-07-19 18:54:26 +08:00
chick f2803896a8 feat(auth): protect aggregate console with password login 2026-07-19 17:13:43 +08:00
chick 75682b8134 feat(web): make instance detail the operations workbench 2026-07-19 14:05:06 +08:00
chick f7d69a0fa7 feat(web): prioritize SMS operations workspace 2026-07-19 10:30:52 +08:00
chick 0112e3320a feat(sms): add real instance message workflow 2026-07-19 02:12:57 +08:00
chick 38a26c2ce1 fix(transport): allow passwordless resource reads 2026-07-19 00:56:03 +08:00
chick 4e7bdea230 fix(resources): probe passwordless instances 2026-07-19 00:51:55 +08:00
chick 23f18963ef feat(fleet): show instance resource metrics 2026-07-19 00:22:23 +08:00
chick 2411801240 feat(web): make instance overview card-first 2026-07-18 23:23:41 +08:00
chick abfd07f8a3 feat(web): localize and redesign operations console 2026-07-18 22:22:41 +08:00
chick d575ab4d9d feat(gateway): allow secured LAN console access 2026-07-18 19:47:23 +08:00
chick e390069edb fix(cutover): use direct detached spawn 2026-07-18 18:36:26 +08:00
chick 0b775b29bc fix(cutover): terminate detached launcher parent 2026-07-18 18:32:42 +08:00
chick d323370a75 fix(cutover): close identity binding races 2026-07-18 18:13:53 +08:00
chick 63d167d720 fix(cutover): persist rollback completion state 2026-07-18 18:02:59 +08:00
chick bd8a3fed5b fix(cutover): detach listener file descriptors 2026-07-18 18:00:21 +08:00
chick 320e65587b fix(cutover): avoid detached child stdout inheritance 2026-07-18 17:58:45 +08:00
chick f326da705c fix(cutover): parse detached child pid safely 2026-07-18 17:56:03 +08:00
chick e4e2c32998 fix(cutover): track direct detached listener pid 2026-07-18 17:51:40 +08:00
chick 020879f7e6 fix(cutover): launch gateway without wrapper pid 2026-07-18 17:46:05 +08:00
chick f7d111588b fix(cutover): separate api health from gateway readiness 2026-07-18 17:40:08 +08:00
chick bad00b67e9 fix(cutover): support absolute legacy restart executable 2026-07-18 17:34:09 +08:00
chick 4a7e29cf06 feat(release): add reversible production cutover gates 2026-07-18 17:24:51 +08:00
chick 3718c91706 test(runtime): verify live same-origin canary 2026-07-18 15:45:57 +08:00
chick f89f393485 fix(runtime): make production commands executable 2026-07-18 15:12:48 +08:00
chick ae27b522ab feat(migration): add verified import and rollback workflow 2026-07-18 14:13:11 +08:00
chick 293c015f89 feat(runtime): add production control-plane foundation 2026-07-18 12:43:46 +08:00
chick 9451e1ee42 feat(runtime): add isolated same-origin canary gateway 2026-07-18 04:54:21 +08:00
chick cc8eb0f54b fix(web): contain jobs table on narrow screens 2026-07-18 03:53:25 +08:00
chick a884033352 test(quality): add concurrency and real browser gates 2026-07-18 03:20:42 +08:00
chick 88d41a7a18 feat(web): connect jobs and audit workspaces 2026-07-18 01:42:17 +08:00
chick 53d9229b45 feat(api): add redacted audit read endpoints 2026-07-18 00:44:23 +08:00
chick e45b011bb8 feat(api): add contract-safe jobs read endpoints 2026-07-18 00:23:45 +08:00
chick e46e81ea77 feat(web): add jobs audit and settings workspaces 2026-07-17 23:08:03 +08:00
chick 5eb8680393 feat(web): complete capability-driven instance modules 2026-07-17 21:48:20 +08:00
chick 0c84e8c88e feat(web): add messages and calls module slices 2026-07-17 20:27:53 +08:00
chick d0fd943082 feat(web): add cellular and network module slices 2026-07-17 20:15:04 +08:00
chick 4a595540e9 feat(web): add overview system module foundation 2026-07-17 19:40:13 +08:00
chick be1741c2f8 feat(web): add durable control-plane event updates 2026-07-17 18:31:07 +08:00
chick 6e817f380a feat(web): complete fleet and instance management slices 2026-07-17 17:12:35 +08:00
chick 4093634e13 feat(web): add runnable fleet console foundation 2026-07-17 16:02:15 +08:00
chick b4ae28c8f0 feat(api): add fleet snapshots and durable event stream 2026-07-17 14:16:46 +08:00
chick 1cc4a995ee feat(api): advance capability and secure operations slices 2026-07-17 11:57:20 +08:00
chick 8018b36adf feat(operations): add audited runtime catalog 2026-07-17 09:07:50 +08:00
chick 243565a75e feat(registry): add fail-closed runtime lookup 2026-07-17 01:34:13 +08:00
chick 7b91dbbad1 feat(api): complete phase 2.4 control plane 2026-07-17 00:37:11 +08:00
chick c2702b5fc6 feat(secrets): add hardened macOS Keychain store 2026-07-16 14:56:10 +08:00
chick 8a307781c6 feat(migration): add safe legacy import preview 2026-07-16 13:51:11 +08:00
chick ef9a634a02 feat(storage): add resilient SQLite foundation 2026-07-16 13:20:59 +08:00
chick 26c1bcc6da feat(api): add secure Fastify skeleton 2026-07-16 11:36:24 +08:00
chick a86970d33b feat(api): define v1 control-plane contract 2026-07-16 10:58:05 +08:00
chick aa3c3f9803 build: establish strict TypeScript workspace 2026-07-16 09:34:50 +08:00
chick 43a69d8617 docs: close Phase 0 acceptance gate 2026-07-16 08:07:58 +08:00
chick c7da857aff test(fixtures): capture redacted SimAdmin responses 2026-07-16 06:35:28 +08:00
chick 9dffadbec2 docs(api): inventory all SimAdmin operations 2026-07-16 05:33:50 +08:00
chick c789ec62e1 docs: define API-first console charter 2026-07-16 00:38:05 +08:00
chick 4977afdc20 [verified] refactor: harden operations and redesign device console 2026-07-15 16:33:16 +08:00
chick e04a16e817 [verified] refactor: establish service and frontend boundaries 2026-07-15 02:43:41 +08:00
chick 0ac6faa6a3 Ensure device cards show complete content 2026-07-08 00:24:58 +08:00
chick 4f80e951d4 Refocus UI on device card details 2026-07-08 00:17:22 +08:00
chick 0e746f961c Refocus dashboard on device monitoring 2026-07-07 23:33:27 +08:00
chick 2505ee561a feat: add instance management to dashboard 2026-07-07 23:04:32 +08:00
chick 182bd19c95 refactor(ui): restyle dashboard as animal island 2026-07-07 22:32:20 +08:00
chick 143ab369c9 Initial Multi SimAdmin dashboard 2026-07-07 21:26:43 +08:00