Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
6 changes: 4 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,10 @@ contract for product update, before any distribution work, and `docs/release-cyc
for the build, qualification and promotion lifecycle and the two distinct test paths, `docs/profile-evidence.md` for optional measurement
and `docs/hosted-assistance.md` before any hosted advice/execution work. Read
`docs/content-sync.md`, `docs/workspace-presets.md` and `docs/hosted-entry.md` before
work on repository synchronization, presets or hosted entry; they record accepted
direction, not implemented behavior. This foundation is a proposal and bounded
work on repository synchronization, presets or hosted entry; content sync and hosted
entry record accepted direction, not implemented behavior, and workspace presets
record the implemented local preset model next to the accepted typed-request
direction. This foundation is a proposal and bounded
proof, not authorization to migrate an installation, transfer a repository, publish
a release or change access. Distinguish proposed contracts from executable evidence.

Expand Down
5 changes: 3 additions & 2 deletions ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -414,8 +414,9 @@ several Principals connect: it holds no personal credentials and no Personalspac
provider identity is the brokered platform App identity, its changes go through pull
requests, and attribution and revocation run through that brokered identity. A
personal environment is never shared ad hoc. The kinds are selected by the
[workspace presets](docs/workspace-presets.md) `hosted-private` and `hosted-team`,
which configure the Environment and grant nothing. Buddy
[workspace presets](docs/workspace-presets.md) `hosted-personal`,
`hosted-organization-personal` and `hosted-organization-team`, derived from the
Machine handover; they configure the Environment and grant nothing. Buddy
belongs to its human's private boundary and is not a new Principal. An AI Colleague
has its own seat, identity, dedicated environment and one human custodian; custody
does not create access to another Principal's Personalspace. Organization-owned
Expand Down
10 changes: 5 additions & 5 deletions docs/acceptance.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ implemented by the document that records it.
identity, content and the selected version**. VM restart, failed-update preservation
and the repeat on a second approved VM from the 2026-09-16 note remain required
evidence of this journey; the reordering does not drop them.
9. **Team preset** with shared-use, conflict, attribution and revocation evidence
9. **`hosted-organization-team` preset** with shared-use, conflict, attribution and revocation evidence
([workspace presets](workspace-presets.md)). Live Team-grant verification in the
identity broker is an external dependency.

Expand Down Expand Up @@ -67,7 +67,7 @@ apply/restart or access mandate.
| 1b — Distribution implementation | Accepted slice 1a contracts | Clean machine runs full installed CLI + Launchpad without source; the evidence list of the product update contract (attested, tampered, wrong-identity, below-floor and offline cases, the native activation journey, one real release candidate) and artifact secret scan |
| 2 — Environment generation | Slice 1 and ownership/schema contract | Folder Factory produces only owned Lazurio Folder files through the shared CLI/Launchpad core; the shared core applies locally through CLI or Launchpad, starts full app; unknown/edited paths preserved; rollback drill |
| 3 — Profile capability | Slice 2 and accepted behavior schema | CLI and Launchpad use the same profile use case; deterministic generation, stale revision refusal, session pin/restart and upgrade preservation |
| 4 — Environment purposes | Slices 2–3 and the validated hosted presets | Private human, team, Buddy and AI Colleague acceptance with correct Principal or Team attribution, Owner, custody and unavailable-capability behavior |
| 4 — Environment purposes | Slices 2–3 and the validated hosted presets (`hosted-personal`, `hosted-organization-personal`, `hosted-organization-team`) | Personal, Organization-personal, team and Buddy acceptance with correct Principal or Team attribution, Owner, custody and unavailable-capability behavior |
| 5 — Migration rehearsal | Relevant slices 1–4, legacy compatibility and restore mapping | Faithful dirty legacy source-working fixtures plus legacy shared-workshop convergence to a private or team workspace prove preservation, interrupted recovery and no-op unknown state |
| 6 — Opt-in cohorts | Qualified consumer slices; rehearsal and explicit migration approval for migrating cohorts | Small native cohort on each supported OS, user completion evidence, observation and recovery; halt on data loss/identity ambiguity |
| 7 — General availability and retirement | Successful cohorts, public release approval | Published support matrix and release provenance; legacy install/update paths retired by declared criteria, backups retained by policy |
Expand Down Expand Up @@ -130,7 +130,7 @@ fixes continue with their owners; selectively port proven contracts with provena
| Application lifetime (Linux; implemented 2026-09-19 for Launchpad restart, [native evidence](evidence/app-services-linux-arm64-2026-09-19.md); product activation, reboot persistence and `linux-x64` not yet exercised) | A started application survives a Launchpad restart and a product activation; Stop stops the service; identity and readiness come from the service manager; reboot persistence only when explicitly set; CLI and Launchpad agree | Saved PID treated as identity, foreign service or process adopted or signalled, port collision accepted, dependency preparation beneath a running application, implicit persistence after Open |
| Content synchronization (accepted direction) | Root first, manifest re-read, declared children; absent destination materialized through a verified temporary sibling; existing checkout fast-forwarded to the inspected commit; siblings continue past one failure | Dirty or wrong-branch checkout stashed, switched or reset; occupied destination replaced; divergence merged; Production Space, Personalspace, worktree or repository database touched; product update cloning or stashing anything |
| Hosted entry (accepted direction) | Authenticated browser reaches Launchpad and application hostnames; session revalidated at the configured auth endpoint; WebSocket reconnect re-enters admission | Forged identity headers honoured, unknown host served, cross-origin state change accepted, Account login treated as admission or repository access |
| Workspace preset (accepted direction) | Immutable reference plus visible overrides survive upgrade; typed request with the expected revision is applied through the ordinary use case and reports the observed outcome | Unknown preset or version mutates; stale revision applied; remote intent overrides a concurrent local change; preset carries grants, tokens, mandates or analytics consent; preset derived from a name |
| Workspace preset (local model implemented; typed request accepted direction) | Preset derived from the typed handover fields, confirmed or explicitly chosen within the allow-list; immutable Machine binding shown, never edited; existing Folder adopted without entering work directories; typed request with the expected revision is applied through the ordinary use case and reports the observed outcome | Unknown preset or version mutates; a personal VM takes an Organization preset or vice versa; stale revision applied; remote intent overrides a concurrent local change; preset carries grants, tokens, mandates or analytics consent; preset derived from a name, hostname or operator account; adoption lists, moves or deletes anything in `organizations/` or `personalspace/` |
| Access | Live identity and exact repo operation attributable to the correct Principal, or on a team workspace to the Team through the brokered identity | Revoked membership or Team grant, wrong account, unattributed brokered change, personal credential on a team workspace, peer credential access fail closed |
| Rollback | Exact old compatible product/profile with verified checkpoint and retained work | New schema/data or new user writes block blind downgrade and produce forward-repair plan |
| Retirement | Old route/process/credential/profile inventory empty after accepted cutover | Recovery dependencies or unattributed drafts prevent deletion |
Expand All @@ -148,8 +148,8 @@ These are future acceptance scenarios, not completed tests or four template fork

This matrix is the general-availability target. The
[nearest-pilot sequence](#nearest-pilot-sequence) deliberately qualifies a narrower set
first (`linux-x64`, `darwin-arm64`, per-user install, one private hosted preset, then
the team preset). That narrowing orders the work; it does not retire a cell, a journey
first (`linux-x64`, `darwin-arm64`, per-user install, `hosted-personal` and
`hosted-organization-personal`, then `hosted-organization-team`). That narrowing orders the work; it does not retire a cell, a journey
or a language from this matrix, and no canary result may be reported as matrix evidence
beyond the cells it actually exercised.

Expand Down
35 changes: 26 additions & 9 deletions docs/decisions.md
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ Machine without an assigned operator. Upstream wins. Both hosted kinds are first
| Attribution | The Principal's own provider identity | Bot committer, Team author pseudo-identity and workspace trailer (upstream 0148) |
| How changes land | The Principal's live rights | Pull requests; an authorized person reviews, merges and takes responsibility |
| Revocation | The Principal's grants and sign-in | Live GitHub Team grant checked at each token issue (upstream 0149) |
| Workspace preset | `hosted-private` | `hosted-team` |
| Workspace preset | `hosted-personal` (the Principal's own personal VM) or `hosted-organization-personal` (an Organization work VM assigned to one operator) | `hosted-organization-team` |

**Intent that remains.** A personal environment is never shared ad hoc. Nobody adds a
second person to a private workspace, a workstation or a Buddy host; nobody copies a
Expand All @@ -148,8 +148,8 @@ operator remains a higher compromise domain. Placement never proves the Git push
verify the provider identity and exact repository grants at the operation boundary.
On a team workspace, a change that cannot be attributed to the Team through the
brokered identity fails closed. Live Team-grant verification in the broker is a target
contract upstream, not deployed behaviour; it is an external dependency of `hosted-team`
acceptance. Platform consequences: [workspace presets](workspace-presets.md),
contract upstream, not deployed behaviour; it is an external dependency of
`hosted-organization-team` acceptance. Platform consequences: [workspace presets](workspace-presets.md),
[content synchronization](content-sync.md), [hosted entry](hosted-entry.md),
[tools and sign-ins](environment-tools.md) and [machine handover](machine-handover.md).

Expand Down Expand Up @@ -446,12 +446,29 @@ deliberate change from the legacy engine that requires the 0129 amendment above.

## F10 — Workspace presets and typed owner requests

**Accepted direction (2026-09-19), not implemented.** A named, versioned, declarative
[workspace preset](workspace-presets.md) composes purpose, collaboration defaults,
required capabilities, enabled surfaces and supervision policy. A preset does not
select product releases: F13 has no update channel to configure.
Exactly two hosted presets are validated first, `hosted-private` and `hosted-team`,
next to the existing local default. The Environment stores the immutable preset
**Accepted direction (2026-09-19); amended and accepted by the Principal 2026-09-22;
local preset model implemented, typed owner requests not.** A named, versioned,
declarative [workspace preset](workspace-presets.md) composes purpose, collaboration
defaults, required capabilities, enabled surfaces and supervision policy. A preset does
not select product releases: F13 has no update channel to configure.

**Amendment 2026-09-22.** Three hosted presets, next to the `local` workstation
default: `hosted-personal` (a Principal's one personal VM: Personalspace present, no
Organization repositories mounted, the Principal's own sign-ins, Buddy optional),
`hosted-organization-personal` (an Organization-owned work VM assigned to one
operator; Organization repositories; Personalspace never present; formerly
`hosted-private`) and `hosted-organization-team` (an Organization-owned team VM, one
OS account, several Principals, brokered Organization identity; formerly
`hosted-team`). Nothing was implemented under the old names, so no compatibility.
The preset is **derived from the Machine handover** and can only be confirmed or
explicitly overridden within what the handover allows: `machine.kind: "personal-vm"`
→ `hosted-personal`; `"workspace-vm"` with `owner.team` → `hosted-organization-team`;
without → `hosted-organization-personal`; a personal VM never takes an Organization
preset and vice versa, and an explicit choice is recorded as such. What comes from the
handover (kind, name, owner, team, tailnet identity, host, relationships when present)
is immutable and only shown; the preset and the communication axes change through the
one existing preview → apply profile change. `folder-init` adopts an existing Folder
instead of requiring an empty layout. The Environment stores the immutable preset
reference plus explicit local overrides under the existing environment-configuration
owner; the instruction axes of the profile renderer are not extended into a universal
infrastructure configuration.
Expand Down
6 changes: 5 additions & 1 deletion docs/development.md
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,11 @@ Parser references verified for the regression fix: [Bun Transpiler scan](https:/
The experimental `folder-init` command accepts an absent canonical `--folder` path
and the normal profile choices/JSON. It rejects every existing target, including an
empty directory, and accepts no revision/digest inputs. Successful creation produces
revision 1 using the shared initializer. The compiled macOS CLI fixture now starts
revision 1 using the shared initializer under the `local` workspace preset (no
Machine binding); its fixed axes are therefore `access: local`, `purpose: human`.
`profile-preview` and `profile-update` accept an optional `--preset` within the
allow-list of the recorded Machine, which for a workstation is only `local`. The
hosted entry is `lazurio machine folder-init` ([machine handover](machine-handover.md)). The compiled macOS CLI fixture now starts
through this command, then performs update, stale/no-op handling and prepared-update
resume, without manually seeding preferences or ownership metadata.

Expand Down
2 changes: 1 addition & 1 deletion docs/environment-tools.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ sign-in column above changes:
- **Harness and model access is open.** A member's personal model subscription is a
personal credential and does not belong on the shared account; what the Organization
supplies instead, and how it is attributed and revoked, is undecided and is a
prerequisite of `hosted-team` acceptance.
prerequisite of `hosted-organization-team` acceptance.
- **No Personalspace**, and no step of the preparation sequence may create one.

Steps 1–3 and 5–6 of the sequence apply unchanged. Step 4 becomes: verify the brokered
Expand Down
Loading
Loading