From 2bfea17407adbe4425e30058cd0ba913eb261ca4 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Fri, 24 Apr 2026 07:51:11 -0400 Subject: [PATCH 01/27] docs: make sourceos-shell PDF-first sequencing explicit --- README.md | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 589c7b9..fe03471 100644 --- a/README.md +++ b/README.md @@ -9,4 +9,22 @@ Primary product/runtime repository for the SourceOS shell. - `SociOS-Linux/source-os` = Linux realization surfaces - `SociOS-Linux/albert` = temporary launcher bridge only -This repo will host the shell runtime, document/PDF lane, search/router services, and publication-facing runtime surfaces. +## Immediate sequencing + +This repository is the runtime home for the broader shell stack, but the first implementation slice is **PDF-first**. + +Initial runtime scope: +- `services/docd` — derive lane +- `services/pdf-secure` — sign / validate lane +- `apps/pdf-viewer-demo` — PDF viewer/demo surface +- `content/` — draft / derived / reports layout +- minimal workspace/bootstrap files + +Explicitly deferred until after the PDF lane is real: +- notes / graph / gallery / playground surfaces +- broader shell UX expansion +- non-PDF publication features beyond what the PDF lane needs + +## Intent + +We keep the repo boundary correct without letting the first implementation slice sprawl beyond the PDF/document/runtime lane. From a8b0282bcb50dc7f5706d21c94b4f783a42f6f53 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Fri, 24 Apr 2026 07:59:11 -0400 Subject: [PATCH 02/27] chore: add PDF-first scaffold root files --- .gitignore | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..dab4756 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +node_modules/ +dist/ +build/ +.env +.DS_Store From 3356d2a66150a0701f9b7c0c5aedd11b48a649b3 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Fri, 24 Apr 2026 07:59:48 -0400 Subject: [PATCH 03/27] chore: add pnpm workspace --- pnpm-workspace.yaml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 pnpm-workspace.yaml diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..bb7b480 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,4 @@ +packages: + - apps/* + - packages/* + - services/* From fccd7e2b2cc033c824a555fd7a30f3f94a0e8c59 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Fri, 24 Apr 2026 08:00:25 -0400 Subject: [PATCH 04/27] chore: add root package manifest --- package.json | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 package.json diff --git a/package.json b/package.json new file mode 100644 index 0000000..5628d60 --- /dev/null +++ b/package.json @@ -0,0 +1,9 @@ +{ + "name": "sourceos-shell", + "private": true, + "packageManager": "pnpm@9.12.0", + "scripts": { + "build": "pnpm -r build", + "test": "pnpm -r test" + } +} From f2696ff469b0a60b75cbb7145c7030488f705ec9 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Fri, 24 Apr 2026 08:01:16 -0400 Subject: [PATCH 05/27] chore: add compose helper --- Makefile | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..6aa7efb --- /dev/null +++ b/Makefile @@ -0,0 +1,5 @@ +up: + docker compose -f infra/compose/docker-compose.yml up --build + +down: + docker compose -f infra/compose/docker-compose.yml down -v From 9a3032b21ee4509b3b97db4eb472bd9b433bcda2 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Fri, 24 Apr 2026 08:01:55 -0400 Subject: [PATCH 06/27] chore: add content scaffold --- content/draft/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 content/draft/.gitkeep diff --git a/content/draft/.gitkeep b/content/draft/.gitkeep new file mode 100644 index 0000000..e69de29 From a15ef9e24672f55b2ef950bbac7c7c4c18208e1a Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Fri, 24 Apr 2026 08:02:33 -0400 Subject: [PATCH 07/27] chore: add derived PDF scaffold --- content/derived/pdf/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 content/derived/pdf/.gitkeep diff --git a/content/derived/pdf/.gitkeep b/content/derived/pdf/.gitkeep new file mode 100644 index 0000000..e69de29 From 8e1c54e0a8fe7db42471fa4a4ca849645dbed0fc Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Fri, 24 Apr 2026 08:03:12 -0400 Subject: [PATCH 08/27] chore: add signed PDF scaffold --- content/derived/pdf_signed/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 content/derived/pdf_signed/.gitkeep diff --git a/content/derived/pdf_signed/.gitkeep b/content/derived/pdf_signed/.gitkeep new file mode 100644 index 0000000..e69de29 From 348df66a01679ed6896b3531b0c1e481b4da4153 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Fri, 24 Apr 2026 08:03:44 -0400 Subject: [PATCH 09/27] chore: add validation report scaffold --- content/reports/pdf_validation/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 content/reports/pdf_validation/.gitkeep diff --git a/content/reports/pdf_validation/.gitkeep b/content/reports/pdf_validation/.gitkeep new file mode 100644 index 0000000..e69de29 From eaf5e9e1b1c77cec211110475124d3e1b98ccafa Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Fri, 24 Apr 2026 08:04:53 -0400 Subject: [PATCH 10/27] docs: add runtime note --- docs/bootstrap-note.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/bootstrap-note.md diff --git a/docs/bootstrap-note.md b/docs/bootstrap-note.md new file mode 100644 index 0000000..2f42c48 --- /dev/null +++ b/docs/bootstrap-note.md @@ -0,0 +1 @@ +PDF-first runtime scaffold is the immediate implementation slice. From 46ce07d4d868c7d6164c377be0833954cb48a57a Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Fri, 24 Apr 2026 08:05:26 -0400 Subject: [PATCH 11/27] docs: add services note --- services/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 services/README.md diff --git a/services/README.md b/services/README.md new file mode 100644 index 0000000..54e0189 --- /dev/null +++ b/services/README.md @@ -0,0 +1 @@ +Runtime services will be added here. From b946aaaff5cac727e22224c82e10f995df2d9fb4 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Fri, 24 Apr 2026 08:06:05 -0400 Subject: [PATCH 12/27] chore: add docd directory --- services/docd/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 services/docd/.gitkeep diff --git a/services/docd/.gitkeep b/services/docd/.gitkeep new file mode 100644 index 0000000..e69de29 From 481bc72a6566ca90a7653f3fd646202e731e3970 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Fri, 24 Apr 2026 08:08:38 -0400 Subject: [PATCH 13/27] docs: add nested test file --- foo/bar.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 foo/bar.txt diff --git a/foo/bar.txt b/foo/bar.txt new file mode 100644 index 0000000..6bd82e7 --- /dev/null +++ b/foo/bar.txt @@ -0,0 +1 @@ +nested file From 15d72ad51a9f41e2a96f5867795cde470879de82 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Fri, 24 Apr 2026 08:10:07 -0400 Subject: [PATCH 14/27] chore: remove temporary nested test file --- foo/bar.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 foo/bar.txt diff --git a/foo/bar.txt b/foo/bar.txt deleted file mode 100644 index 6bd82e7..0000000 --- a/foo/bar.txt +++ /dev/null @@ -1 +0,0 @@ -nested file From 46c0751124908128f2011f29fdfa4162fafc4dcd Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Fri, 24 Apr 2026 08:11:47 -0400 Subject: [PATCH 15/27] chore: add app scaffold directory --- apps/foo/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/foo/.gitkeep diff --git a/apps/foo/.gitkeep b/apps/foo/.gitkeep new file mode 100644 index 0000000..e69de29 From c03cc65f5ed262b98934b22633167bf51a5843c8 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Fri, 24 Apr 2026 08:28:00 -0400 Subject: [PATCH 16/27] chore: add PDF-first content directories --- content/imported/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 content/imported/.gitkeep diff --git a/content/imported/.gitkeep b/content/imported/.gitkeep new file mode 100644 index 0000000..e69de29 From 15abeb941b4b0ceec9635d1b0981433ffeaa7110 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Fri, 24 Apr 2026 09:55:23 -0400 Subject: [PATCH 17/27] docs: note PDF-first app sequencing --- apps/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 apps/README.md diff --git a/apps/README.md b/apps/README.md new file mode 100644 index 0000000..69fa61d --- /dev/null +++ b/apps/README.md @@ -0,0 +1 @@ +PDF-first sequencing: the first app surface in this repo will be the PDF viewer/demo. From e4bc1aed95420fed1e66066056f3775c23d0310f Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Fri, 24 Apr 2026 09:56:46 -0400 Subject: [PATCH 18/27] chore: remove temporary app placeholder --- apps/foo/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 apps/foo/.gitkeep diff --git a/apps/foo/.gitkeep b/apps/foo/.gitkeep deleted file mode 100644 index e69de29..0000000 From 542f785ea3b8abd6cfb3476e2fa9c88d50836eac Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Fri, 24 Apr 2026 10:43:18 -0400 Subject: [PATCH 19/27] chore: add app scaffold dir --- apps/pdfdemo/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/pdfdemo/.gitkeep diff --git a/apps/pdfdemo/.gitkeep b/apps/pdfdemo/.gitkeep new file mode 100644 index 0000000..e69de29 From fb68e760c5596444298ec017a63fa9ed22d6da32 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Fri, 24 Apr 2026 10:53:10 -0400 Subject: [PATCH 20/27] chore: add PDF viewer demo dir --- apps/pdf-viewer-demo/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/pdf-viewer-demo/.gitkeep diff --git a/apps/pdf-viewer-demo/.gitkeep b/apps/pdf-viewer-demo/.gitkeep new file mode 100644 index 0000000..e69de29 From 1433369ae6e39ab4766c235e092f87a7df977fa5 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Fri, 24 Apr 2026 10:55:49 -0400 Subject: [PATCH 21/27] chore: add PDF services scaffold dirs --- services/pdf-secure/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 services/pdf-secure/.gitkeep diff --git a/services/pdf-secure/.gitkeep b/services/pdf-secure/.gitkeep new file mode 100644 index 0000000..e69de29 From 15d7515eca7a264c9a21208479325eaab004719a Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Fri, 24 Apr 2026 11:01:27 -0400 Subject: [PATCH 22/27] docs: add docd scaffold note --- services/docd/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 services/docd/README.md diff --git a/services/docd/README.md b/services/docd/README.md new file mode 100644 index 0000000..37f9930 --- /dev/null +++ b/services/docd/README.md @@ -0,0 +1 @@ +docd service scaffold From aaab4a9ee72e2bcb110a8fa8d6521e34cbabdfce Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Fri, 24 Apr 2026 11:02:24 -0400 Subject: [PATCH 23/27] docs: add pdf-secure scaffold note --- services/pdf-secure/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 services/pdf-secure/README.md diff --git a/services/pdf-secure/README.md b/services/pdf-secure/README.md new file mode 100644 index 0000000..6c54c5d --- /dev/null +++ b/services/pdf-secure/README.md @@ -0,0 +1 @@ +pdf-secure service scaffold From c83e535d7e8066fec3ad3517ca2e655727af5a62 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Fri, 24 Apr 2026 11:03:38 -0400 Subject: [PATCH 24/27] feat(pdf): add viewer demo placeholder page --- apps/pdf-viewer-demo/index.html | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 apps/pdf-viewer-demo/index.html diff --git a/apps/pdf-viewer-demo/index.html b/apps/pdf-viewer-demo/index.html new file mode 100644 index 0000000..fcb80cd --- /dev/null +++ b/apps/pdf-viewer-demo/index.html @@ -0,0 +1,12 @@ + + +
+ + +PDF-first runtime scaffold placeholder.
+ + From 581c3ec92f20ac21670abc30e6d259191e3b1b02 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Fri, 24 Apr 2026 11:07:53 -0400 Subject: [PATCH 25/27] chore: add PDF-first runtime compose scaffold --- infra/compose/docker-compose.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 infra/compose/docker-compose.yml diff --git a/infra/compose/docker-compose.yml b/infra/compose/docker-compose.yml new file mode 100644 index 0000000..9969bf5 --- /dev/null +++ b/infra/compose/docker-compose.yml @@ -0,0 +1,11 @@ +services: + docd: + image: alpine:3.20 + command: ["sh", "-lc", "echo docd scaffold && sleep infinity"] + + pdf-secure: + image: alpine:3.20 + command: ["sh", "-lc", "echo pdf-secure scaffold && sleep infinity"] + + pdf-viewer-demo: + image: nginx:alpine From 28e39206fb42bad87ca8463fa883c9e4297e9b86 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Fri, 24 Apr 2026 11:09:13 -0400 Subject: [PATCH 26/27] chore: add docd package manifest --- services/docd/package.json | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 services/docd/package.json diff --git a/services/docd/package.json b/services/docd/package.json new file mode 100644 index 0000000..e87b885 --- /dev/null +++ b/services/docd/package.json @@ -0,0 +1,5 @@ +{ + "name": "docd", + "private": true, + "type": "module" +} From 750720a1a5d0e1356d67fbc4a5b9ff3be7059135 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Fri, 24 Apr 2026 11:09:58 -0400 Subject: [PATCH 27/27] chore: add pdf-secure package manifest --- services/pdf-secure/package.json | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 services/pdf-secure/package.json diff --git a/services/pdf-secure/package.json b/services/pdf-secure/package.json new file mode 100644 index 0000000..778fad3 --- /dev/null +++ b/services/pdf-secure/package.json @@ -0,0 +1,5 @@ +{ + "name": "pdf-secure", + "private": true, + "type": "module" +}