Commit Graph

8 Commits

Author SHA1 Message Date
vasilito 1dd1fccbf3 docs: relocate DRIVER-MANAGER-MIGRATION-PLAN to archive + cleanup
The DRIVER-MANAGER-MIGRATION-PLAN was self-declared complete (the
driver-manager cutover happened 2026-07-23 per local/AGENTS.md). It
is now historical reference material rather than current planning
authority. Move it from local/docs/ into the established
legacy-obsolete-2026-07-25/ archive directory, updating every
inbound reference.

Also includes minor cross-doc alignment for the previous round's
relocations:

- local/AGENTS.md: update DRIVER-MANAGER-MIGRATION-PLAN to point to
  the legacy archive
- local/docs/REDBEAR-FULL-SDDM-BRINGUP.md: alignment update
- local/docs/CONSOLE-TO-KDE-DESKTOP-PLAN.md: alignment update
- local/docs/archived/README.md: refresh archive contents note
- local/recipes/system/redbear-driver-policy/source/policy/README.md:
  policy doc drift alignment
- local/scripts/guard-recipes.sh: fix symlink target computation
  (relative path was being glued onto an absolute path, producing
  malformed dangling links like '../..//mnt/.../recipe.toml')
  -- this is a real bug fix discovered during this audit round.
2026-07-27 12:05:54 +09:00
Red Bear OS Builder db5f289d46 d-bus: redbear-udisks mount/unmount + notifications ActionInvoked (v3.3)
This commit implements three previously-stubbed areas identified in the
DBUS assessment:

* redbear-udisks Mount/Unmount (real implementation). The org.freedesktop.
  UDisks2.Block interface had no mount/unmount methods. New
  implementation:
  - mount.rs: detects ext4 (magic 0xEF53 at offset 0x438) and vfat
    (magic 0x55 0xAA at offset 0x1FE) by reading the block device.
  - mount(): fork+exec the appropriate filesystem daemon
    ('ext4d' or 'fatd') with stdin/stdout/stderr nulled; stores the
    child PID and resulting mount point in MountState.
  - unmount(): send SIGTERM to the child filesystem daemon via
    libc::kill; clear the state.
  - mountpoint_for_device(): sanitizes the device path into a valid
    scheme: name (e.g. 'udisks_disk_sata0p1').
  - 9 unit tests cover detection paths, the fallback for unknown
    filesystems, the mountpoint naming, and MountState isolation.
  - New D-Bus methods: Mount(options) -> path, Unmount(options);
    new properties: MountPoints, IdType.

* redbear-notifications ActionInvoked emission. The signal was declared
  via the zbus macro but never emitted. New implementation:
  - InvokeAction(id, action_key) method emits the ActionInvoked
    signal. This is the standard UDisks2/org.freedesktop.Notifications
    mechanism by which an external notification UI (e.g. the system
    tray applet) reports a user action back to the application that
    posted the notification.
  - ServerVersion bumped to 0.2.0.
  - Capabilities list adds 'persistence' (spec-defined capability).

* redbear-statusnotifierwatcher unit tests. The daemon had no
  coverage for its registration state machine. Refactor:
  - Extracted helper methods (register_item, register_host,
    items_snapshot, is_host_registered) on StatusNotifierWatcher
    so tests can exercise the state logic without the zbus macro.
  - 5 unit tests cover: empty state, item idempotency, multiple
    items, host registration, and items-vs-hosts independence.

DBUS-PLAN bumped to v3.3 (2026-07-26). The status table now lists:
- redbear-udisks v0.2 with Mount/Unmount/MountPoints/IdType
- redbear-notifications v0.2 with ActionInvoked emission
- redbear-statusnotifierwatcher with 5 unit tests

The fragility-rating table at the bottom of the plan is updated:
- redbear-polkit 5/5 security -> ' v0.2 real authorization'
- redbear-notifications 2-3/5 -> ' v0.3 ActionInvoked emission'
- redbear-udisks 2-3/5 -> ' v0.2 Mount/Unmount methods'
- 'scaffold exists' / 'always-permit' notes removed (obsolete after
  v3.2 and v3.3 work).

The 'What Exists But Is Incomplete' table (§3.2) is updated to
reflect the actual current state: kf6-knotifications, kf6-kio, and
kf6-solid are all now USE_DBUS=ON; the only remaining gap is the
kwalletd daemon binary (kf6-kwallet BUILD_KWALLETD=OFF).

Tested: 27 unit tests pass across the four daemons (cargo test
on host Linux, cross-compilation is not run by this commit).
2026-07-26 20:32:20 +09:00
vasilito 6e7c17d811 0.3.1: sync all Cat 1 + Cat 2 versions to +rb0.3.1 2026-07-11 11:21:22 +03:00
vasilito 0046efb009 sync in-house crate versions to 0.3.0 and bump kernel/relibc/syscall submodules 2026-07-08 18:34:22 +03:00
vasilito 7902864a32 version(0.2.5): bump project version to 0.2.5
- Cookbook Cargo.toml: 0.1.0 → 0.2.5
- All 61 in-house crate Cargo.toml versions: 0.2.4 → 0.2.5
- os-release.in: fix URLs from github.com to gitea.redbearos.org
- sync-versions.sh --check passes with zero drift

The OS version is derived from the git branch name at build time.
Building on branch 0.2.5 produces os-release with VERSION_ID=0.2.5.
2026-07-02 15:36:28 +03:00
vasilito 8af119d1a9 Remove duplicate redbear-netctl-console recipe (nested inside redbear-netctl) 2026-06-28 00:01:47 +03:00
vasilito 20162fccf8 D-Bus Phase 3/4: upgrade sessiond, services, add StatusNotifierWatcher, consolidate configs
- redbear-sessiond: add Manager.Inhibit (pipe FD), CanPowerOff/CanReboot/
  CanSuspend/CanHibernate/CanHybridSleep/CanSleep (return na), PowerOff/
  Reboot/Suspend stubs, GetSessionByPID, ListUsers, ListSeats,
  ListInhibitors, ActivateSession/LockSession/UnlockSession/TerminateSession
- redbear-sessiond: add Session SetIdleHint, SetLockedHint, SetType,
  Terminate methods; wire PauseDevice/ResumeDevice/Lock/Unlock signal
  emission via SignalEmitter injection; add dynamic device enumeration
  scanning /scheme/drm/card* and /dev/input/event* at startup
- redbear-sessiond: replace infinite pending() with stoppable shutdown
  via tokio watch channel + control socket shutdown command
- redbear-upower: add Changed signal emission with 30s periodic polling
  and power state snapshot comparison
- redbear-notifications: add ActionInvoked signal, expand capabilities
  to body + body-markup + actions
- redbear-polkit, redbear-udisks: replace pending() with stoppable
  shutdown via signal handling + watch channel
- Add redbear-statusnotifierwatcher: new session bus service implementing
  org.freedesktop.StatusNotifierWatcher for KDE system tray
- Add D-Bus activation file for StatusNotifierWatcher
- KWin session.cpp: try LogindSession before NoopSession fallback
- Consolidate config profiles: remove obsolete redbear-desktop, redbear-kde,
  redbear-live-*, redbear-minimal-*, redbear-wayland configs; simplify
  to three supported targets (redbear-full, redbear-mini, redbear-grub)
- Update DBUS-INTEGRATION-PLAN.md and DESKTOP-STACK-CURRENT-STATUS.md
  with Phase 3/4 fragility assessment, KWin readiness matrix, and
  completeness gap analysis
2026-04-25 12:01:25 +01:00
vasilito e6e1eb8520 Add D-Bus session and system services 2026-04-17 13:33:17 +01:00