Skip to content

feat: image-managed core (no package updates) and first account made on the machine - #55

Merged
inkly merged 4 commits into
ReCasaOS:mainfrom
ppenguin:feat/image-managed-ui
Oct 24, 2026
Merged

inkly merged 4 commits into
ReCasaOS:mainfrom
ppenguin:feat/image-managed-ui

Conversation

@ppenguin

Copy link
Copy Markdown
Contributor

Dashboard side of ReCasaOS/CasaOS#44 (core: ReCasaOS/CasaOS#53) and #45 (user service: ReCasaOS/CasaOS-UserService#6). Both only read new fields; an older core changes nothing.

Commit Reads Does
feat(settings): an image-managed core shows no package updates GET /v1/sys/version → image_managed System packages row hidden; update row: "Updated with the system image", no update button
feat(welcome): first account made on the machine, no form GET /v1/users/status → first_admin local: says the first account is created on the machine, reload to sign in; no Go / form (it could only fail with 403)
  • unchanged where the field is absent or false / web
  • other host-management rows (OS upgrade, automatic updates, Docker update) already hide on the core's 404
  • modules: unchanged (routes stay, image provider in fix: storage .finally typo; a failing app grid keeps the built-in apps #53)
  • strings: en, fr, it, de, nl
  • tests: TopBar row on image_managed; router keeps first_admin in the store; Welcome template + translations
  • vitest run: 111 files, 7180 tests green; eslint: no new findings

🤖 Generated with Claude Code

ppenguin and others added 2 commits October 24, 2026 16:26
- core `[server] ImageManaged` (CasaOS `feat/nixos-host`): `GET /v1/sys/version` answers `image_managed: true`, host-management routes are absent
- most rows already hide against a core without the route (automatic updates, modules, OS badge)
- System packages row: always shown → now hidden when `image_managed`
- update row: "Updated with the system image" instead of "latest version"
- en, fr, it, de, nl
- tests: template rows, checkVersion keeps the flag, translations

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- core UserService `[app] FirstAdmin = local` (`feat/local-first-admin`): `GET /v1/users/status` → `first_admin: local`, no key; register → 403
- welcome page: says the first account is created on the machine, reload to sign in; no Go/form (it could only fail)
- `first_admin` absent (older core) or `web`: unchanged
- en, fr, it, de, nl
- tests: router keeps `first_admin`; template and translations

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@inkly inkly left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, the fallbacks are right: a missing image_managed or first_admin gives today's behaviour, and the form cannot be reached once first_admin is local. Before merging, could you:

  1. add router tests with a status that has no first_admin and with first_admin: 'web', and a checkVersion test without image_managed, so "older core = today's behaviour" is tested and not only matched in the template;
  2. reword the two texts for non-technical users, e.g. "Updated with the system" and "created on the device running ReCasaOS", rather than "system image" or "the machine itself".

We'll merge it after CasaOS#53 and CasaOS-UserService#6. We'll squash-merge with a plain commit message, so nothing to change in the commit trailers.

…users

- router: status without first_admin, and with first_admin web → the welcome page with its form and the key
- checkVersion without image_managed → field absent, package and update rows as today
- texts: "Updated with the system"; "The first account is created on the device running ReCasaOS. …"
  (en, fr, it, de, nl)
@ppenguin

Copy link
Copy Markdown
Contributor Author

Done in c596c86:

  1. router: status without first_admin, and with first_admin: 'web' → welcome page with its form and the key; checkVersion without image_managed → field absent, rows as today
  2. texts: "Updated with the system"; "The first account is created on the device running ReCasaOS. Once it exists, reload this page to sign in." (en, fr, it, de, nl)

vitest run: 111 files, 7188 tests green.

@inkly inkly left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, both points are addressed: the tests now cover an older core and first_admin: 'web' through the router, and the new wording is much clearer in all five languages. It merges cleanly with main and with #56, and the suite is green. Approving. We'll squash-merge with a plain commit message.

@inkly
inkly merged commit 3c6f9bc into ReCasaOS:main Oct 24, 2026
1 of 2 checks passed
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.

2 participants