Skip to content

docs: propose OpenClaw MSIX packaging for Windows - #58

Open
xlinush wants to merge 12 commits into
openclaw:mainfrom
xlinush:rfc/0010-openclaw-msix-packaging
Open

docs: propose OpenClaw MSIX packaging for Windows#58
xlinush wants to merge 12 commits into
openclaw:mainfrom
xlinush:rfc/0010-openclaw-msix-packaging

Conversation

@xlinush

@xlinush xlinush commented Aug 4, 2026

Copy link
Copy Markdown

What Problem This Solves

Enterprise administrators need a consistent way to identify, inventory,
approve, deploy, update, and remove OpenClaw on managed Windows devices.

Why This Change Was Made

This RFC proposes a dedicated OpenClaw MSIX packaging repository,
reproducible signed builds from pinned OpenClaw revisions, and a package-specific
host app that manages payload staging and the Gateway lifecycle. Runtime
isolation and Microsoft Store distribution remain outside the initial scope.

User Impact

This RFC has no immediate user-visible impact. If accepted and implemented,
Windows users and enterprise administrators would gain a stable, signed, and
manageable OpenClaw installation path.

Evidence

  • The RFC follows the repository's required metadata and section structure.
  • The proposal covers x64 and ARM64 build validation, signing, provenance,
    installation, onboarding, updates, repair, reset, and uninstall behavior.
  • The branch is updated with and merges cleanly into the current main.

Linus Huang and others added 8 commits July 16, 2026 15:04
Add proposal for a dedicated openclaw-msix-packaging repository that
builds a package-specific host app and pinned OpenClaw payload into a
signed MSIX, with the host app provisioning a dedicated agent user and
session-isolated Agent Session to run the Gateway.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 93b33c00-2350-43f2-b727-43d5bdb7d057
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 3cd24431-d6fe-4603-b495-c289228b4ccb
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 6aa7eb66-af4f-44cd-a5a8-fe80ae9d0057
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 6aa7eb66-af4f-44cd-a5a8-fe80ae9d0057
Clarify installation, preferred update behavior, package identity, and future PFN management while removing rollback from scope.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 7b5e8cf9-246d-4f16-83d0-3abd731a0813
Track whether packaged OpenClaw should prevent command- and prompt-driven native updates and what enterprise enforcement is possible.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 7b5e8cf9-246d-4f16-83d0-3abd731a0813
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c4e24ce6-c557-4073-909c-b2e7615bd870
@clawsweeper clawsweeper Bot added rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. labels Aug 4, 2026
@clawsweeper

clawsweeper Bot commented Aug 4, 2026

Copy link
Copy Markdown

Codex review: needs real behavior proof before merge. Reviewed August 11, 2026, 9:57 PM ET / August 12, 2026, 01:57 UTC.

ClawSweeper review

What this changes

The PR adds a 418-line RFC proposing a separately maintained, signed MSIX packaging repository and Windows host lifecycle for OpenClaw Gateway deployments.

Merge readiness

⚠️ Ready for maintainer review - 4 items remain

This is a coherent draft RFC for a new Windows distribution path, not an already-implemented change. Keep it open for an explicit maintainer product and ownership decision; it should remain unmerged while its RFC status is draft.

Priority: P3
Reviewed head: d6abbc1d2b45f289d14c1bf7e45a90f1768b5510
Owner decision: Required. See Decision needed.

Review scores

Measure Result What it means
Overall readiness 🐚 platinum hermit (4/6) The draft RFC is structurally appropriate and the prior lifecycle-contract concern is addressed, but acceptance awaits a maintainer direction decision.
Proof confidence 🌊 off-meta tidepool Not applicable: This docs-only RFC changes no runnable behavior; signed-package and Gateway-lifecycle proof belongs to a later implementation PR.
Patch quality 🐚 platinum hermit (4/6) No actionable review findings were identified.

Verification

Check Result Evidence
Real behavior Not applicable Not applicable: This docs-only RFC changes no runnable behavior; signed-package and Gateway-lifecycle proof belongs to a later implementation PR.
Evidence reviewed 4 items RFC lifecycle contract: Current repository policy requires new RFCs to stay in draft on a pull request until acceptance, then receive an implementation issue before merge. The supplied PR frontmatter is correctly draft with no issue.
Current-main boundary: Current main has no MSIX RFC or implementation; it contains only an adjacent draft Computer Use plan that reserves a Windows package lane and requires clean-install, upgrade, and uninstall proof.
Adjacent feature provenance: Dallin Romney’s RFC 0025 added the current Windows companion/package-lane design context, making that area a useful routing connection rather than evidence that this MSIX proposal is already implemented.
Findings None None.
Security None None.

How this fits together

This repository records OpenClaw design decisions before implementation. The proposed packaging path would transform a pinned OpenClaw revision into a signed Windows MSIX whose host stages the payload and prepares Gateway onboarding and lifecycle.

flowchart LR
A[OpenClaw revision] --> B[Packaging build]
B --> C[Signed MSIX artifact]
C --> D[Windows host app]
D --> E[Payload staging]
E --> F[Gateway onboarding and lifecycle]
Loading

Decision needed

Question Recommendation
Should OpenClaw sponsor the dedicated MSIX packaging repository and managed Windows lifecycle described by this RFC? Sponsor a scoped MSIX direction: Accept the RFC after confirming ownership, supported installation scope, package identity, signing, and lifecycle boundaries.

Why: The proposal introduces new distribution, package identity, signing, and host-lifecycle policy that cannot be selected by an automated documentation review.

Before merge

  • Add real behavior proof - Not applicable: This docs-only RFC changes no runnable behavior; signed-package and Gateway-lifecycle proof belongs to a later implementation PR.
  • Resolve merge risk (P1) - Accepting this RFC would establish compatibility-sensitive update, repair, reset, uninstall, package-identity, and signing expectations before their implementation has upgrade or security-boundary proof.
  • Complete next step (P2) - A maintainer must select the product and ownership direction before implementation can be safely routed.
Agent review details

Security

None.

Review metrics

Metric Value Why it matters
RFC scope 1 file added, 418 lines This branch documents a future design and adds no executable packaging, workflow, or dependency changes.

Merge-risk options

Maintainer options:

  1. Set implementation acceptance gates (recommended)
    Before accepting the RFC, require an implementation tracker to prove fresh install, upgrade, reset, uninstall, signing, and Gateway credential/state boundaries.
  2. Accept with explicit follow-up risk
    Maintainers may accept the direction while recording unresolved upgrade and security requirements in the implementation issue.
  3. Pause until sponsorship exists
    Keep the RFC draft if no owner can commit to the package identity and support model.

Technical review

Best possible solution:

Have a sponsoring maintainer accept, narrow, or defer the MSIX direction, then create a bounded implementation issue that owns package identity, signing, upgrade, reset, uninstall, and Gateway-state handling.

Do we have a high-confidence way to reproduce the issue?

Not applicable: this docs-only RFC proposes future packaging behavior and contains no runnable implementation to reproduce.

Is this the best way to solve the issue?

Unclear: a dedicated packaging repository is a plausible design, but its product scope and lifecycle policy require maintainer approval before implementation.

AGENTS.md: not found in the target repository.

Codex review notes: model internal, reasoning high; reviewed against af708f0ddb6f.

Labels

Label justifications:

  • P3: This is a future platform-design proposal with no current user-facing regression.
  • merge-risk: 🚨 compatibility: The proposal would define installation, update, repair, reset, and uninstall behavior for existing Windows users.
  • merge-risk: 🚨 security-boundary: The proposal introduces signed artifacts and a package host that stages and launches Gateway payloads.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🌊 off-meta tidepool and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Not applicable: This docs-only RFC changes no runnable behavior; signed-package and Gateway-lifecycle proof belongs to a later implementation PR.

Evidence

What I checked:

  • RFC lifecycle contract: Current repository policy requires new RFCs to stay in draft on a pull request until acceptance, then receive an implementation issue before merge. The supplied PR frontmatter is correctly draft with no issue. (README.md:78, af708f0ddb6f)
  • Current-main boundary: Current main has no MSIX RFC or implementation; it contains only an adjacent draft Computer Use plan that reserves a Windows package lane and requires clean-install, upgrade, and uninstall proof. (rfcs/0025/implementation-plan.md:459, af708f0ddb6f)
  • Adjacent feature provenance: Dallin Romney’s RFC 0025 added the current Windows companion/package-lane design context, making that area a useful routing connection rather than evidence that this MSIX proposal is already implemented. (rfcs/0025-default-pluggable-computer-use.md:1, cf89a2bd089a)
  • Review continuity: The supplied latest head commit explicitly clarifies the unchanged Gateway protocol and pairing boundary plus removal/reset separation, addressing the prior host-to-Gateway-contract finding; no remaining line-level patch defect is supported. (rfcs/0010-openclaw-msix-packaging.md:1, d6abbc1d2b45)

Likely related people:

  • RomneyDa: The discussion requests RomneyDa’s review and repository history shows Dallin Romney authored the current Windows companion/package-lane RFC context. (role: adjacent RFC author and likely product-direction reviewer; confidence: high; commits: cf89a2bd089a, 3aa7d727383f; files: rfcs/0025-default-pluggable-computer-use.md, rfcs/0025/implementation-plan.md, README.md)
  • kevinlin-openai: Kevin Lin authored the accepted enterprise-platform RFC, which is relevant to the proposed managed deployment and lifecycle direction. (role: recent enterprise RFC author; confidence: medium; commits: af708f0ddb6f; files: rfcs/0027-openclaw-enterprise.md)

Rank-up moves

Optional improvements that raise the rating; they are not merge blockers.

  • Obtain sponsor confirmation for ownership, package identity, signing, and support scope.

Rating scale

Score Internal tier Crab rank Meaning
6/6 S 🦀 challenger crab Exceptional readiness
5/6 A 🦞 diamond lobster Very strong readiness
4/6 B 🐚 platinum hermit Good normal PR; ordinary maintainer review
3/6 C 🦐 gold shrimp Useful, but confidence is limited
2/6 D 🦪 silver shellfish Proof or implementation needs work
1/6 F 🧂 unranked krab Not merge-ready
N/A NA 🌊 off-meta tidepool Rating does not apply

Overall follows the weaker of proof and patch quality.
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

Workflow

  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

History

Review history (39 earlier review cycles; latest 8 shown)
  • reviewed 2026-08-07T21:05:32.398Z sha dc41b57 :: needs real behavior proof before merge. :: [P2] Define the host-to-Gateway control contract
  • reviewed 2026-08-07T22:20:10.968Z sha dc41b57 :: needs real behavior proof before merge. :: [P2] Define the host-to-Gateway control contract
  • reviewed 2026-08-07T23:48:49.313Z sha dc41b57 :: needs real behavior proof before merge. :: [P2] Define the host-to-Gateway control contract
  • reviewed 2026-08-08T00:31:38.605Z sha dc41b57 :: needs real behavior proof before merge. :: [P2] Define the host-to-Gateway control contract
  • reviewed 2026-08-08T02:17:56.180Z sha dc41b57 :: needs real behavior proof before merge. :: [P2] Specify the host-to-Gateway control contract
  • reviewed 2026-08-08T03:38:58.181Z sha dc41b57 :: needs real behavior proof before merge. :: [P2] Define the host-to-Gateway control contract
  • reviewed 2026-08-08T06:02:06.840Z sha dc41b57 :: needs real behavior proof before merge. :: [P2] Define the host-to-Gateway control contract
  • reviewed 2026-08-10T19:58:52.731Z sha d6abbc1 :: needs real behavior proof before merge. :: none

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c4e24ce6-c557-4073-909c-b2e7615bd870
@clawsweeper clawsweeper Bot added rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. and removed rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. labels Aug 4, 2026
@xlinush
xlinush marked this pull request as ready for review August 4, 2026 21:03
@clawsweeper clawsweeper Bot added rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. and removed rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. labels Aug 4, 2026
@MythiliMur

Copy link
Copy Markdown

@RomneyDa, this is the MSIX PR that I was chatting with you about. Thanks, Mythili

@clawsweeper clawsweeper Bot added rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. and removed rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels Aug 5, 2026
@clawsweeper clawsweeper Bot added the merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. label Aug 5, 2026
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: d5132745-7693-44d9-a132-e5f7d9568cfc
payload and manages the Gateway lifecycle.
- Publish signed MSIX artifacts under a stable OpenClaw-controlled identity,
with checksums and source-version metadata, through GitHub Releases.
- Make a supported way to disable OpenClaw Gateway self-updates a hard

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

For disable /update, my comment would to be "Disable or modify to update via MSIX instead of git clone"

Comment thread rfcs/0010-openclaw-msix-packaging.md Outdated
prompting the Gateway, for managed MSIX installations?
- If Microsoft Store distribution is introduced later, packages that are released
from GitHub and those from the Store will have different PFNs. How will side-by-side
installation be handled?

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

For pre-Store, can you get your certificate from Azure Artifact Services in a way that's compatible with Store?

The certificate's SUBJECT must match the package's Publisher (<Package...><Identity...Publisher="...publisher...">). Normally, Store defines this value for your account, and likewise defines the package's Name for your package (e.g. PFN=37849OpenClaw_r91mwp1sztvzy).

Will AAS issue a certificate with this SUBJECT? This sounds like the cert issuer 'Doing Business As' (DBA) scenario (ie. provide appropos paperwork and your SUBJECT doesn't have to be CN=OpenClaw...)

If you can get a cert from AAS with info per Store's definition then you could...

  1. Create a Store account
  2. Define the OpenClaw offering
  3. Copy the Store defined 'product identity' information into your appxmanifest.xml
  4. Create the .msix
  5. Sign the .msix with the AAS cert

and later, if/when you decide to start publishing to Store...

  1. Bump package version
  2. Build package
  3. Submit .msix to Store
  4. Once certified, download the Store signed package and post on GitHub for non-Store distribution

5+9 have same package identity

The only difference between 5 + 9 is the installed package's PackageOrigin = Store vs not.

Comment thread rfcs/0010-openclaw-msix-packaging.md
Comment thread rfcs/0010-openclaw-msix-packaging.md
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: a34648ae-920d-4b39-9726-00a1a63cfe9d
@clawsweeper clawsweeper Bot added merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. merge-risk: 🚨 security-boundary 🚨 Merging this PR could weaken sandboxing, authorization, credentials, or sensitive data. and removed merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. labels Aug 7, 2026
Define the unchanged Gateway protocol and pairing boundary, document app execution alias installation, and separate package removal from administrator-managed decommissioning and reset.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: f06e6164-8cba-4365-8596-3cc422dbd189
@clawsweeper clawsweeper Bot added status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. labels Aug 10, 2026
@xlinush

xlinush commented Aug 10, 2026

Copy link
Copy Markdown
Author

Hi @RomneyDa, could you please take a look at this RFC when you have a chance? I’ve been working with Mythili on the proposal, and MSIX packaging is an important part of supporting enterprise OpenClaw scenarios on Windows. Any feedback would be greatly appreciated.

The immediate need is a standalone repository under the OpenClaw organization where I can check in the initial scaffolding and set up the build pipeline. I believe only OpenClaw organization owners can create it, so I’d appreciate your help with that as well. Thank you!

@clawsweeper clawsweeper Bot added rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. and removed rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. labels Aug 12, 2026
@RomneyDa

Copy link
Copy Markdown
Member

@xlinush my only feedback is can this live in the openclaw/openclaw-windows-node repo? Seems closely attached and would like to avoid double permissions etc

@xlinush

xlinush commented Aug 18, 2026

Copy link
Copy Markdown
Author

@xlinush my only feedback is can this live in the openclaw/openclaw-windows-node repo? Seems closely attached and would like to avoid double permissions etc

@RomneyDa thanks so much for reviewing and for the feedback! We did discuss internally whether the packaging code should need a dedicated repository. We concluded that a separate repo offers the best balance as it avoids blurring the responsibilities of existing repositories while giving the packaging implementation a clear home. A few key considerations led us to this:

  • No other platform currently bundles a pinned OpenClaw Gateway payload into the native application package and treats that package as the authoritative Gateway distribution.
  • The implementation will be substantially more than a single GitHub Actions workflow or script. For reference, I put together a working minimal POC showing the host application and supporting packaging infrastructure. This codebase will grow as we prepare it for production, making an existing repo responsible for a second product.
  • The Gateway and its Windows packaging are separate pieces of work. Keeping them in separate repos gives each repo a clear purpose and allows packaging changes to be reviewed and released independently.

Here is a comparison of the other possible homes for the MSIX work:

Repository Advantages Concerns
New openclaw/openclaw-msix-packaging repo Gives the C# host, MSIX definition, payload build, tests, signing, and package lifecycle a clear home. Packaging changes can be reviewed and released independently. Adds another repo and requires us to keep the package aligned with changes in openclaw/openclaw.
openclaw/openclaw Gateway and packaging contract changes could land together, and the package could build directly from the same source revision. Adds a new .NET application and a substantial Windows-specific build, test, signing, and release surface to the monorepo.
openclaw/openclaw-windows-node Already uses .NET, supports x64 and ARM64, has MSIX tooling, and owns the Windows setup experience. The Companion is a node/operator client, while this MSIX is a Gateway distribution with a separate identity and lifecycle. Putting both there could blur the two products and their setup paths.
openclaw/releases A good fit for protected signing, release approval, artifact promotion, and release evidence. It is designed for release automation and evidence rather than product source code, host applications, and tests.

Based on this, I think the right model is to keep the implementation in a new dedicated openclaw/openclaw-msix-packaging repo. If the additional repo overhead is considered too high, placing it in the openclaw/openclaw-windows-node would be the next-best alternative, but I really think the clearer product boundary is worth the cost of a new repo.

Please let me know your thoughts 😄!

paulcam206 added a commit to paulcam206/rfcs that referenced this pull request Aug 19, 2026
The previous revision had OpenClaw core owning the seam that contains the
Gateway, which contradicts the RFC's own threat model: if the Gateway is
the component treated as compromised, a containment decision it makes is
a decision the attacker makes. A check inside the process can be patched,
configured away, or never reached, and by the time it would run the
untrusted code is already executing with the identity the check was
supposed to remove. The same applies to plugins, which load into the
process being contained.

The boundary is now established before the Gateway exists, by a small
trusted launcher outside it:

- The launcher owns the ContainmentProvider seam, provider selection,
  the fail-closed rule, and posture reporting. It probes, provisions,
  stages, and starts the Gateway inside the boundary.
- The Gateway is unchanged and unaware. It has no uncontained mode to
  reach because it is never started outside the boundary, so phase 1
  requires no change to OpenClaw core at all.
- On Windows the launcher is the packaged host app already proposed in
  openclaw#58 rather than a new component: openclaw#58 defines it as the
  packaged entry point behind an openclaw.exe execution alias whose job
  is launching or stopping the packaged Gateway.
- Adds bypass resistance. openclaw#58 already requires that native
  `openclaw gateway` commands cannot bypass staged-payload activation;
  the same requirement extends to containment. Because the Gateway
  cannot be trusted to refuse to start, this comes from the deployment
  shape rather than a check inside it.
- The threat model now names the launcher as the trusted computing base,
  so anything added to it is added to the TCB, and package integrity
  becomes a dependency of this design.
- Posture reported by the Gateway is explicitly not evidence, since a
  compromised Gateway can claim to be contained.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ccc616c5-8e0a-4098-b8ef-c19695e5c27b
paulcam206 added a commit to paulcam206/rfcs that referenced this pull request Aug 19, 2026
Full rewrite. Same argument and same design, ~35% shorter: drops the
repetition and hedging that accumulated across revisions, uses plainer
language, and merges the migration, phasing, and rollback material into
a single Rollout section instead of three.

Adds crosslinks throughout to openclaw#58, #42026, openclaw#55, RFC 0025, the public
microsoft/mxc backend docs, and the Windows Insider build that gates the
primitive.

Fixes two defects found while rewriting: a typo in the summary, and a
capability named hostPathSharing in the Windows section that no longer
matched the descriptor table after it was split into hostPathProjection
and stagingChannel.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ccc616c5-8e0a-4098-b8ef-c19695e5c27b
paulcam206 added a commit to paulcam206/rfcs that referenced this pull request Aug 19, 2026
Fixes several factual errors, verified against microsoft/mxc at
0aaa2afa (2026-08-18). The earlier draft was written against a clone
that was eight days stale, and the preview API had changed underneath
it.

Corrections:

- Lifecycle was wrong. The real phases are provision, start, exec, stop,
  deprovision. The draft omitted exec and invented an attach phase the
  provider explicitly defers.
- "Every operation is idempotent" was false and dangerous: provision
  mints a fresh identity on every call, so a naive retry leaks accounts.
  Replaced with per-operation semantics and a durable pre-provision
  record.
- Detached execution is deferred upstream and a spawned process stays
  tethered to its caller, so the launcher cannot exit. It is a
  long-lived supervisor, not a bootstrapper, and that cost is now stated.
- The caller-supplied identity bundle was removed upstream. Dropped the
  workloadIdentity capability and the claim built on it; appId is now
  described as inert forward-compatibility metadata rather than a
  mechanical link to package identity.
- PR openclaw#55 was mischaracterized. It also contains the long-lived Gateway,
  and brokers model credentials so neither Gateway nor worker holds
  provider values, which solves a residual risk this RFC cannot. Now
  positioned as complementary and the better answer where available,
  differing by deployment context rather than by scope.
- openclaw#58 proposes a launcher, it does not already build one. #42026 would
  make the unit of containment a live question, not a drop-in swap.
- AppContainer dismissal was too glib. It is MXC's default Windows
  backend; the real objection is that it is an allowlist over the same
  token, and its universally available tier enforces filesystem policy by
  mutating DACLs on host paths.
- The downgrade requirement was impossible as written. An older launcher
  cannot be taught to reject config it never knew; this needs a minimum
  version enforced by packaging.
- Fallback no longer contradicts fail-closed: it means another provider
  of equal or greater strength, never uncontained.

Threat model restructured around the right baseline. Several residual
risks are unchanged from an uncontained Gateway rather than regressions
- shared-ACL reach, local IPC, egress, and persistence, which is now
confined to a throwaway account instead of the user's profile. Separated
from the risks containment actually shifts or introduces: the host-side
state store, the staging channel, and the launcher. Added a TCB table
covering the SDK, the SYSTEM service, and the kernel, and noted that a
compromised Gateway commanding an authorized desktop node is not
contained by this boundary.

Also drops the claim that the Gateway is unaffected. It needs no
containment code, but a new principal means a different profile,
registry hive, and credential store, and whether the Docker and SSH
sandbox backends survive that is now an explicit phase 2 question.

All MXC citations pinned to a commit with a verification date, since a
load-bearing claim went stale within a week.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ccc616c5-8e0a-4098-b8ef-c19695e5c27b
@xlinush

xlinush commented Aug 24, 2026

Copy link
Copy Markdown
Author

I'm currently working on this draft PR (openclaw/openclaw-windows-node#1186) to implement the packaging logic in openclaw-windows-node repo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. merge-risk: 🚨 security-boundary 🚨 Merging this PR could weaken sandboxing, authorization, credentials, or sensitive data. P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants