space-architect 2.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a5828b73d6d58a9d14547e9d8be9e7f8a734212c7e7356a01149c4c9cbeadd9c
4
- data.tar.gz: a8c75e611270a1ff40f0cfd55753549d6972ae2d6af4999695b688f35942bb88
3
+ metadata.gz: 4ded62e199397e162bba1ff6ee37a5c6a9c7ee83a446d154107036aa4d628768
4
+ data.tar.gz: 592a6bb0c3b10b2773873e7fc3fd79cf7197bad78ada5520c5c9dc77e60aae2f
5
5
  SHA512:
6
- metadata.gz: a9ff6975fce076eb36bfcd398129551182662830c1f433dfd3d57c375fa32d0ed8b547c46aca5d3959742a454c7523335109ab3ef5d406c8bd5ea6221797b8f4
7
- data.tar.gz: 9f20d1e71cc27260fa7e8f1c3090c95b670ae9edea2d9394510e18ddfb6d9543c15655a2ecc2532cd3ba73e4f0250b24a55e00b838b475d64d9331f518d197dd
6
+ metadata.gz: 91b5a865cb40557085399853e723e7763c2a54cb183d95b9744f9886753579aa841309f3f2dc490d28a3ad10d4693db06cfb615a9716b2b13fe68ded86b932f6
7
+ data.tar.gz: 6ebb0c24e6e603252aab77da49ff2b904d22084e0c840f7d46d5ac0eb66ec7c315ec04816d6446dc537cac5b3dbc58c7663d8bbbb563443566cd6e84de5ee05a
data/CHANGELOG.md CHANGED
@@ -5,6 +5,29 @@ All notable changes to this project are documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [2.0.1] - 2026-07-01
9
+
10
+ Fast-follow completing the `pack.persist:` story from 2.0.0.
11
+
12
+ ### Added
13
+
14
+ - **Seed-on-empty for `pack.persist:`.** Content baked at a persisted path now
15
+ survives a first-run empty bind mount. `space pack` snapshots each persisted
16
+ dir to a `/opt/space-seed<path>` sidecar after provisioning, and the entrypoint
17
+ restores an empty mount from its seed on first run only (a non-empty mount
18
+ keeps its evolving state). Previously the empty host mount shadowed the baked
19
+ content — e.g. a provisioned `~/.hermes/config.yaml` was hidden once
20
+ `/root/.hermes` was persisted. Template-only; a space with no `pack.persist:`
21
+ renders an identical Dockerfile and entrypoint.
22
+
23
+ ### Fixed
24
+
25
+ - **First-run boot on bind-mount-root-restricted runtimes.** The seed restore
26
+ tolerates a benign copy failure (`2>/dev/null || true`) so that on runtimes
27
+ where the persisted path is a bind mount whose root rejects utime updates
28
+ (virtiofs under Apple `container`), the entrypoint's `set -e` no longer turns a
29
+ cosmetic `cp` EPERM into a fatal abort before the payload execs.
30
+
8
31
  ## [2.0.0] - 2026-07-01
9
32
 
10
33
  A ground-up release across four fronts:
@@ -293,6 +316,7 @@ the **BREAKING** items under Changed. The repository is now a monorepo; the
293
316
  lanes, worktrees, and headless `claude -p` dispatch, with variant sets and the
294
317
  claude-code and opencode harnesses.
295
318
 
319
+ [2.0.1]: https://github.com/jetpks/space-architect/compare/v2.0.0...v2.0.1
296
320
  [2.0.0]: https://github.com/jetpks/space-architect/compare/v1.3.0...v2.0.0
297
321
  [1.3.0]: https://github.com/jetpks/space-architect/compare/v1.2.0...v1.3.0
298
322
  [1.2.0]: https://github.com/jetpks/space-architect/compare/v1.1.0...v1.2.0
@@ -56,6 +56,13 @@ RUN printf 'export PATH="/usr/local/bundle/bin:/root/.local/bin:$PATH"\n' \
56
56
  RUN /space/<%= script %>
57
57
  <% end -%>
58
58
  <% end -%>
59
+ <% if persist_paths.any? -%>
60
+
61
+ # Seed snapshot: capture baked content of persisted dirs so a first-run (empty) mount is seeded from it
62
+ <% persist_paths.each do |guest_path| -%>
63
+ RUN mkdir -p "/opt/space-seed<%= guest_path %>" && cp -a "<%= guest_path %>/." "/opt/space-seed<%= guest_path %>/" 2>/dev/null || true
64
+ <% end -%>
65
+ <% end -%>
59
66
 
60
67
  WORKDIR /space
61
68
 
@@ -3,6 +3,12 @@ set -e
3
3
  git config --global --add safe.directory '*'
4
4
  git config --global --get user.name >/dev/null 2>&1 || git config --global user.name 'space-architect'
5
5
  git config --global --get user.email >/dev/null 2>&1 || git config --global user.email 'architect@localhost'
6
+ <% persist_paths.each do |guest_path| -%>
7
+ if [ -d "/opt/space-seed<%= guest_path %>" ] && [ -z "$(ls -A "<%= guest_path %>" 2>/dev/null)" ]; then
8
+ mkdir -p "<%= guest_path %>"
9
+ cp -a "/opt/space-seed<%= guest_path %>/." "<%= guest_path %>/" 2>/dev/null || true
10
+ fi
11
+ <% end -%>
6
12
  if [ "$#" -eq 0 ]; then
7
13
  exec bash --login
8
14
  else
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Space
4
4
  module Core
5
- VERSION = "2.0.0"
5
+ VERSION = "2.0.1"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: space-architect
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Jacobs