Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
8188ee5
test(runtime): add sourceos-shell module contract scaffold
mdheller Apr 22, 2026
19b776b
feat(runtime): import sourceos-shell linux-dev profile scaffold
mdheller Apr 22, 2026
cb2313d
test(runtime): add sourceos-shell module contract check
mdheller Apr 22, 2026
7cda692
docs(runtime): add launcher bridge note for sourceos-shell rollout
mdheller Apr 22, 2026
b6667d8
feat(runtime): add sourceos-docd service scaffold
mdheller Apr 22, 2026
a26bd66
feat(runtime): add sourceos-docd systemd unit scaffold
mdheller Apr 22, 2026
c87a6de
test(runtime): extend sourceos-shell contract check for docd scaffold
mdheller Apr 22, 2026
09646f7
docs(runtime): mention docd derive service in shell integration note
mdheller Apr 22, 2026
6bfa0a7
feat(runtime): add sourceos-shell search-provider scaffold
mdheller Apr 22, 2026
bfbe0bb
feat(runtime): add sourceos-shell search-provider options and config
mdheller Apr 22, 2026
93acda1
test(runtime): extend shell contract check for search-provider scaffold
mdheller Apr 22, 2026
dc22214
docs(runtime): document search-provider scaffold paths
mdheller Apr 22, 2026
60919b0
feat(runtime): add sourceos-shell target scaffold
mdheller Apr 22, 2026
9de06b9
feat(runtime): add sourceos-shell systemd target scaffold
mdheller Apr 22, 2026
f75dc9e
test(runtime): extend shell contract check for service graph target
mdheller Apr 22, 2026
f4fd235
docs(runtime): add sourceos-shell service graph note
mdheller Apr 22, 2026
d90a0c0
test(runtime): add sourceos-shell service graph contract check
mdheller Apr 22, 2026
0a5289c
test(runtime): add sourceos-shell service graph contract check to flake
mdheller Apr 22, 2026
3015d7d
docs(runtime): mention service graph contract check
mdheller Apr 22, 2026
3cb22eb
feat(runtime): add sourceos-shell keyboard-equivalence scaffold
mdheller Apr 22, 2026
90569c2
test(runtime): add sourceos-shell keyboard equivalence contract check
mdheller Apr 23, 2026
dc75921
test(runtime): add sourceos-shell keyboard equivalence contract check…
mdheller Apr 23, 2026
5ad7881
Merge pull request #83 from SociOS-Linux/feat/sourceos-shell-linux-ke…
mdheller Apr 23, 2026
021dcd5
Merge pull request #82 from SociOS-Linux/feat/sourceos-shell-linux-ke…
mdheller Apr 23, 2026
6305e4d
Merge main into feat/sourceos-shell-linux-service-graph-checks
mdheller Jul 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/sourceos-shell-integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ This repository, `source-os`, carries the Linux realization surfaces required to
- Nix/NixOS modules
- profile wiring
- machine-level integration hooks
- derive-service runtime integration such as `docd`

## What does not belong here

Expand Down
28 changes: 28 additions & 0 deletions docs/sourceos-shell-launcher-bridge.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# sourceos-shell launcher bridge note

During the early shell rollout, launcher integration is tracked as temporary bridge work.

## Routing rule

Queries are routed by scope:

- `apps` -> launcher or desktop-entry provider
- `files` -> Linux-native file search only
- `web` -> browser or web agent

## Required invariant

For `files` queries, Albert must not perform a second file-search pass in parallel with the Linux-native provider.

## Realization scaffolds

The Linux realization currently carries placeholder search-provider material at:

- `linux/desktop/sourceos-search-provider.conf`
- `/etc/sourceos-shell/search-provider.json` (realized by the shell Nix module scaffold)

These capture the intended rollout mode and the provider choice for the Linux-native file search lane.

## Lifecycle

This bridge exists only until the shell's own command/search surface fully absorbs the routing behavior.
30 changes: 30 additions & 0 deletions docs/sourceos-shell-service-graph.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# sourceos-shell service graph note

The Linux realization layer currently models the `sourceos-shell` runtime as a four-service graph:

- `sourceos-shell`
- `sourceos-router`
- `sourceos-pdf-secure`
- `sourceos-docd`

These services are grouped by the `sourceos-shell.target` scaffold.

## Intent

This target is a Linux realization placeholder that captures the expected runtime grouping before the actual product/runtime repo exists.

## Validation scaffold

The current Linux realization adds a dedicated contract-style check at:

- `tests/sourceos-shell-service-graph-contract.nix`

This check verifies that:

- `sourceos-shell.target` exists
- the four runtime scaffold services are grouped beneath that target
- the Nix module expresses the target and `partOf` relationships consistently

## Follow-on

Once `SourceOS-Linux/sourceos-shell` exists, the placeholder ExecStart values should be replaced with real package/service paths and the current scaffold checks should be upgraded into actual runtime/service-graph checks.
1 change: 1 addition & 0 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -299,6 +299,7 @@
mesh-package-contract = import ./tests/mesh-package-contract.nix { inherit pkgs; };
mesh-host-runtime-contract = import ./tests/mesh-host-runtime-contract.nix { inherit pkgs; };
sourceos-shell-module-contract = import ./tests/sourceos-shell-module-contract.nix { inherit pkgs; };

sourceos-shell-pdf-stack-contract = import ./tests/sourceos-shell-pdf-stack-contract.nix { inherit pkgs; };
sourceos-shell-pdf-config-contract = import ./tests/sourceos-shell-pdf-config-contract.nix { inherit pkgs; };

Expand Down
23 changes: 23 additions & 0 deletions linux/desktop/sourceos-keyboard-equivalence.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# SourceOS shell keyboard-equivalence scaffold
# Transitional Mac-on-Linux shortcut model.

mode=kinto-bridge
platform-model=mac-like
terminal-model=mac-terminal-like

# GUI lanes
copy=Cmd-C
paste=Cmd-V
tab-next=Cmd-Shift-]
tab-prev=Cmd-Shift-[
window-switch=Cmd-Tab
launcher=Cmd-Space

# Terminal lanes
interrupt=Ctrl-C
terminal-copy=Cmd-C
terminal-paste=Cmd-V
word-left=Alt-Left
word-right=Alt-Right

invariant=gui_terminal_split_explicit
4 changes: 4 additions & 0 deletions linux/systemd/sourceos-shell.target
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[Unit]
Description=SourceOS shell service graph
Wants=sourceos-shell.service sourceos-router.service sourceos-pdf-secure.service sourceos-docd.service
After=network-online.target
14 changes: 14 additions & 0 deletions tests/sourceos-shell-keyboard-equivalence-contract.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{ pkgs ? import <nixpkgs> {} }:
pkgs.runCommand "sourceos-shell-keyboard-equivalence-contract" {
nativeBuildInputs = [ pkgs.gnugrep ];
} ''
test -f ${../linux/desktop/sourceos-keyboard-equivalence.conf}
grep -q 'mode=kinto-bridge' ${../linux/desktop/sourceos-keyboard-equivalence.conf}
grep -q 'platform-model=mac-like' ${../linux/desktop/sourceos-keyboard-equivalence.conf}
grep -q 'terminal-model=mac-terminal-like' ${../linux/desktop/sourceos-keyboard-equivalence.conf}
grep -q '# GUI lanes' ${../linux/desktop/sourceos-keyboard-equivalence.conf}
grep -q '# Terminal lanes' ${../linux/desktop/sourceos-keyboard-equivalence.conf}
grep -q 'invariant=gui_terminal_split_explicit' ${../linux/desktop/sourceos-keyboard-equivalence.conf}
mkdir -p $out
echo validated > $out/result.txt
''
12 changes: 12 additions & 0 deletions tests/sourceos-shell-service-graph-contract.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{ pkgs ? import <nixpkgs> {} }:
pkgs.runCommand "sourceos-shell-service-graph-contract" {
nativeBuildInputs = [ pkgs.gnugrep ];
} ''
test -f ${../linux/systemd/sourceos-shell.target}
grep -q 'sourceos-shell.service sourceos-router.service sourceos-pdf-secure.service sourceos-docd.service' ${../linux/systemd/sourceos-shell.target}
grep -q 'systemd.targets.sourceos-shell' ${../modules/nixos/sourceos-shell/default.nix}
grep -q 'partOf = \[ "sourceos-shell.target" \]' ${../modules/nixos/sourceos-shell/default.nix}
grep -q 'sourceos-shell.target' ${../docs/sourceos-shell-service-graph.md}
mkdir -p $out
echo validated > $out/result.txt
''
Loading