Skip to content

[validation-only] SpaceApp #181 integration with upstream 14117daa - #2

Merged
1932819331hy-debug merged 32 commits into
feat/dev-stack-65from
audit/dev-stack-181-sync-14117
Oct 19, 2026
Merged

1932819331hy-debug merged 32 commits into
feat/dev-stack-65from
audit/dev-stack-181-sync-14117

Conversation

@1932819331hy-debug

@1932819331hy-debug 1932819331hy-debug commented Oct 19, 2026 •

Copy link
Copy Markdown
Owner

Independent integration validation of upstream oll4com#181. Do not merge this fork-only PR upstream or mark Ready.

Current upstream main 14117da adds 31 commits since base 98bcb38. Candidate merge commit 73237e2 has parents c0bafc5 (existing oll4com#181) and 14117da (upstream main). The tree is upstream main plus the 24 PR-owned changes; four overlapping files were combined manually, retaining upstream's progress/media/design instructions and source-stack-owned memory isolation. We scoped installed-only Nous progress-script instructions to installed mode. Git Tree audit: all 4,734 upstream files preserved and 11 new PR files added, with no unowned changes or unexpected deletions.

Run full source-stack Linux/macOS lifecycle, container matrix, and security/CI tests on this candidate. Do not update feat/dev-stack-65 before validating. Known sanitized export-provenance and fork dependency review exemptions remain; do not count them as code pass. AI-assisted merge resolution disclosed.

Evidence update (2026-10-19 JST)

  • Linux source-stack lifecycle on the candidate: PASS including 62/62 Node dev-stack tests, owner setup/login/CLI, rebuild/HMR and owned-resource reset. Run 39190882640. macOS/Colima job was still running when recorded; do not imply its completion.
  • Launcher platform matrix: macOS and Ubuntu PASS; Windows Node 22 and 24 fail the same four run-spaceapp tests on both this merge candidate and unaltered upstream main at 14117da. Upstream baseline: run 39188999548; candidate: run 39190882776. The failures are POSIX permission/ACL assumptions in launcher tests, not introduced by this branch merge, but they are still red check results. Do not patch unrelated launcher code to hide them.
  • Container matrix / security: three amd64 builds and three image-scanning jobs had passed; arm64 builds, CodeQL and public tests were still running. Fork dependency review fails due missing dependency-graph capability; sanitized export-provenance fails by the existing outside-PR policy.
  • Promotion gate: retain feat/dev-stack-65 at c0bafc5 until this candidate's Linux/macOS source-stack evidence is complete and current source changes are independently reviewed. Never force-push, replace the older PR, or claim the Windows failures as green.

Space Agent and others added 30 commits October 16, 2026 18:43
From the 2026-10-16 pilot rehearsal on the Linux, Windows 11 and macOS lab VMs:
- F1: workspace add/remove apply the mounts to the running core and CLI services
  (compose recreates them only when the mounts changed); on failure they say to run up.
- F3: on Linux, workspace add prints the setfacl command that lets the CLIs (uid 10001)
  write to a host-owned folder without changing its owner.
- F4: OpenCode gets the Anthropic and OpenAI keys set for Claude Code and Codex, so a
  non-Zen key no longer has to go into credentials set opencode (which broke free models).
- F8: backup adds spaceapp-config.json (workspace list) and cli-config.tar.gz (Claude,
  Codex and OpenCode settings: MCP servers, base URLs; no logins or keys); restore puts the
  settings back and lists the workspaces to add again. A failure there keeps the backup.
- F9: uninstall --purge-data accepts purgeConfirm in --answers for unattended removal.
…ilot F13)

Naming invariant 2026-10-13: the canonical memory is Space Memory. New installs seed
space_memory.md and space_memory_monthly.md (SPACE_MEMORY_* paths in compose); an install
made earlier moves its gemini_history*.md files once at core start and keeps the old names
as links (deploy/docker/memory-names.sh). Space readers already accept both names and skip
the links. A restored older backup is moved the same way on the next start.
Agents often check their work with a short python3 script; the CLI image had none.
python3-minimal adds about 13 MB (apt reports 12.6 MB on spaceapp-cli 1.1.6), far under
the 2800 MiB CLI image budget. The apt lists leave in the same layer.
With an API key the pinned 2.1.206 started on Opus 4.8. 2.1.301 is the version Space
stable runs (and npm latest on 2026-10-16); license metadata unchanged (SEE LICENSE IN
README.md), still owner-installed only and not in the image. The release acceptance
checks the model a fresh Claude pane starts on.
…-segment session tokens, fail-closed revocations, logout reports unsaved revocations; install telemetry after the owner's Yes; review fixes)

Sanitized source @ b9122162ac (4409 files). See CHANGELOG.md.
…s each command (pilot F17; seccomp default + userns, no AppArmor profile)
…ile into the project directory (F17 lab finding)
…revocation fixes and the route-guard test fix; CI installs ffmpeg for the Nous attachment tests)

Sanitized source @ 732e9f3a78. See CHANGELOG.md.
…namespaces (F17, operator decision 2026-10-17)
…4, not for release yet)

Plan clipboard:evAaFYqrgDfd step 5. user enable turns SpaceApp accounts on (core
SPACE_MULTI_USER_ENABLED); user add <user-id> [--memory 2g] gives an invited user the service
spaceapp-cli-<slug> with its own CLI state, memory, workspaces and socket volumes and
secrets/users/<slug>/providers; the core gets the user -> pane host socket map
(cli-hosts.json, SPACE_CLI_HOST_SOCKETS_FILE). credentials set|remove and workspace
add|remove|list take --user <user-id> and reach only that user's container. Users require
isolated access (host-root would let every agent read the whole host). user remove drops the
container and keeps its volumes. Kept off the release branch until the multi-user rehearsal
(step 6) passes and the operator turns it on.
Security review 2026-10-17 (plan clipboard:evAaFYqrgDfd step 6): spaceapp-cli-<slug> joined the
shared spaceapp network, so a user's agent could reach the owner's internal services (temporal,
codex-lb, headroom). It now joins spaceapp-user-<slug> only: internet, no other service and no
other user. The core still reaches it only through its socket volume.
… again

Plan clipboard:evAaFYqrgDfd step 6: accounts, rooms and shares come back with the database, but
each user's CLI container and workspaces are host configuration; restore prints user enable,
user add <id> and workspace add ... --user <id> for what the backup had, like the owner's
workspaces.
…y (never keys or logins); restore and 'user restore' put them back (MU-004)
…vider install --user installs into that user's container (multi-user step 6)
…, not the backup restore saves first (lab recheck 2026-10-18)
…F17/F18 (fix/pilot-next-release ca0128a) and per-user CLI containers (feat/multi-user-cli-containers d536d42); operator decision 2026-10-18

# Conflicts:
#	CHANGELOG.md
…her work: pilot fixes F1/F3/F4/F8/F9/F11/F13/F17/F18, per-user CLI containers and the multi-user core MU-001/002/003/007; install telemetry; session revocation and review fixes)
…y private (load gate script, Vault broker units, Vault MCP server; 1.1.6 re-cut)
…Design pane's tenth module; source fix 3f302e9713 is not in the 1.1.6 base f8803d5d96)
…work, the multi-user core, the public-suite fixes and test exclusions; OpenCode 1 kept; install telemetry; session revocation and review fixes)
…; Linux, Windows, macOS and all profiles on e2be6ab; known exception: OpenCode Zen refuses the free-model first answer from the lab address, operator-approved; AI checks on Claude)
…ator decision efc30984)

OpenCode Zen refused every free model from the lab's address while 1.1.6 was tested, so the free-model first answer
could not run. validateEvidence now accepts a missing first-agent proof for a platform only when the version is exactly
1.1.6 and release/acceptance.json names operator decision efc30984 for that platform; every other version, platform
and check stays as strict as before. Tests: 1.1.6 with the decision passes; without it, with another decision, for one
platform only, for another scenario or for 1.1.7 it fails.
Space Agent and others added 2 commits October 19, 2026 05:04
…ted on e2be6ab, source f8803d5d96; operator-approved Zen exception efc30984 named per platform)
else if (name === "required" || name === "allowed") {
// A rule lists classes and [custom] characters separated by commas; one required rule means "at least one of these".
let alphabet = "";
for (const token of value.match(/\[[^\]]*\]|[^,\s]+/g) ?? []) {
const call: Call = { url, googleKey: headers["x-goog-api-key"] ?? null, bearer: headers.authorization?.replace("Bearer ", "") ?? null,
body: init?.body ? JSON.parse(String(init.body)) as Record<string, unknown> : null };
calls.push(call);
if (url.startsWith("https://api.openai.com")) return url.endsWith("/models") ? json({ data: [] }) : json({ data: [{ embedding: [1, 0] }], usage: { prompt_tokens: 3 } });
@1932819331hy-debug
1932819331hy-debug merged commit 73237e2 into feat/dev-stack-65 Oct 19, 2026
16 of 22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants