aether-colony 3.1.17 → 5.0.0
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.
- package/{runtime → .aether}/CONTEXT.md +1 -1
- package/{runtime → .aether}/aether-utils.sh +1772 -98
- package/.aether/docs/QUEEN-SYSTEM.md +211 -0
- package/.aether/docs/QUEEN.md +84 -0
- package/.aether/docs/README.md +68 -0
- package/.aether/docs/caste-system.md +48 -0
- package/{runtime → .aether/docs/disciplines}/DISCIPLINES.md +8 -8
- package/.aether/docs/error-codes.md +268 -0
- package/{runtime → .aether}/docs/known-issues.md +42 -26
- package/.aether/docs/queen-commands.md +97 -0
- package/.aether/exchange/colony-registry.xml +11 -0
- package/{runtime → .aether}/exchange/pheromone-xml.sh +2 -1
- package/.aether/exchange/pheromones.xml +87 -0
- package/.aether/exchange/queen-wisdom.xml +14 -0
- package/{runtime → .aether}/exchange/registry-xml.sh +7 -3
- package/{runtime → .aether}/exchange/wisdom-xml.sh +11 -4
- package/.aether/rules/aether-colony.md +134 -0
- package/.aether/schemas/example-prompt-builder.xml +234 -0
- package/.aether/templates/colony-state-reset.jq.template +22 -0
- package/.aether/templates/colony-state.template.json +35 -0
- package/.aether/templates/constraints.template.json +9 -0
- package/.aether/templates/crowned-anthill.template.md +36 -0
- package/.aether/templates/handoff-build-error.template.md +30 -0
- package/.aether/templates/handoff-build-success.template.md +39 -0
- package/.aether/templates/handoff.template.md +40 -0
- package/{runtime → .aether}/utils/atomic-write.sh +5 -5
- package/{runtime → .aether}/utils/chamber-compare.sh +23 -10
- package/{runtime → .aether}/utils/chamber-utils.sh +32 -20
- package/{runtime → .aether}/utils/error-handler.sh +13 -1
- package/{runtime → .aether}/utils/file-lock.sh +49 -13
- package/.aether/utils/semantic-cli.sh +413 -0
- package/{runtime → .aether}/utils/xml-compose.sh +7 -1
- package/.aether/utils/xml-convert.sh +273 -0
- package/.aether/utils/xml-query.sh +201 -0
- package/.aether/utils/xml-utils.sh +110 -0
- package/{runtime → .aether}/workers.md +14 -17
- package/.claude/agents/ant/aether-ambassador.md +264 -0
- package/.claude/agents/ant/aether-archaeologist.md +322 -0
- package/.claude/agents/ant/aether-auditor.md +266 -0
- package/.claude/agents/ant/aether-builder.md +187 -0
- package/.claude/agents/ant/aether-chaos.md +268 -0
- package/.claude/agents/ant/aether-chronicler.md +304 -0
- package/.claude/agents/ant/aether-gatekeeper.md +325 -0
- package/.claude/agents/ant/aether-includer.md +373 -0
- package/.claude/agents/ant/aether-keeper.md +271 -0
- package/.claude/agents/ant/aether-measurer.md +317 -0
- package/.claude/agents/ant/aether-probe.md +210 -0
- package/.claude/agents/ant/aether-queen.md +325 -0
- package/.claude/agents/ant/aether-route-setter.md +173 -0
- package/.claude/agents/ant/aether-sage.md +353 -0
- package/.claude/agents/ant/aether-scout.md +142 -0
- package/.claude/agents/ant/aether-surveyor-disciplines.md +416 -0
- package/.claude/agents/ant/aether-surveyor-nest.md +354 -0
- package/.claude/agents/ant/aether-surveyor-pathogens.md +288 -0
- package/.claude/agents/ant/aether-surveyor-provisions.md +359 -0
- package/.claude/agents/ant/aether-tracker.md +265 -0
- package/.claude/agents/ant/aether-watcher.md +244 -0
- package/.claude/agents/ant/aether-weaver.md +247 -0
- package/.claude/commands/ant/archaeology.md +16 -7
- package/.claude/commands/ant/build.md +415 -284
- package/.claude/commands/ant/chaos.md +19 -10
- package/.claude/commands/ant/colonize.md +58 -24
- package/.claude/commands/ant/continue.md +155 -145
- package/.claude/commands/ant/council.md +15 -5
- package/.claude/commands/ant/dream.md +16 -7
- package/.claude/commands/ant/entomb.md +274 -157
- package/.claude/commands/ant/feedback.md +33 -29
- package/.claude/commands/ant/flag.md +18 -10
- package/.claude/commands/ant/flags.md +14 -6
- package/.claude/commands/ant/focus.md +29 -21
- package/.claude/commands/ant/help.md +11 -1
- package/.claude/commands/ant/history.md +10 -0
- package/.claude/commands/ant/init.md +91 -65
- package/.claude/commands/ant/interpret.md +15 -4
- package/.claude/commands/ant/lay-eggs.md +55 -7
- package/.claude/commands/ant/maturity.md +11 -1
- package/.claude/commands/ant/migrate-state.md +14 -2
- package/.claude/commands/ant/oracle.md +23 -15
- package/.claude/commands/ant/organize.md +29 -20
- package/.claude/commands/ant/pause-colony.md +17 -7
- package/.claude/commands/ant/phase.md +17 -8
- package/.claude/commands/ant/plan.md +20 -9
- package/.claude/commands/ant/redirect.md +29 -32
- package/.claude/commands/ant/resume-colony.md +19 -9
- package/.claude/commands/ant/resume.md +272 -96
- package/.claude/commands/ant/seal.md +201 -191
- package/.claude/commands/ant/status.md +71 -32
- package/.claude/commands/ant/swarm.md +26 -44
- package/.claude/commands/ant/tunnels.md +279 -105
- package/.claude/commands/ant/update.md +81 -20
- package/.claude/commands/ant/verify-castes.md +14 -4
- package/.claude/commands/ant/watch.md +13 -12
- package/.opencode/agents/aether-ambassador.md +63 -20
- package/.opencode/agents/aether-archaeologist.md +29 -12
- package/.opencode/agents/aether-auditor.md +51 -18
- package/.opencode/agents/aether-builder.md +69 -19
- package/.opencode/agents/aether-chaos.md +29 -12
- package/.opencode/agents/aether-chronicler.md +60 -18
- package/.opencode/agents/aether-gatekeeper.md +27 -18
- package/.opencode/agents/aether-includer.md +27 -18
- package/.opencode/agents/aether-keeper.md +89 -18
- package/.opencode/agents/aether-measurer.md +27 -18
- package/.opencode/agents/aether-probe.md +60 -18
- package/.opencode/agents/aether-queen.md +172 -24
- package/.opencode/agents/aether-route-setter.md +57 -12
- package/.opencode/agents/aether-sage.md +26 -18
- package/.opencode/agents/aether-scout.md +27 -19
- package/.opencode/agents/aether-surveyor-disciplines.md +53 -1
- package/.opencode/agents/aether-surveyor-nest.md +53 -1
- package/.opencode/agents/aether-surveyor-pathogens.md +51 -1
- package/.opencode/agents/aether-surveyor-provisions.md +53 -1
- package/.opencode/agents/aether-tracker.md +64 -18
- package/.opencode/agents/aether-watcher.md +66 -19
- package/.opencode/agents/aether-weaver.md +61 -18
- package/.opencode/commands/ant/build.md +406 -192
- package/.opencode/commands/ant/continue.md +66 -76
- package/.opencode/commands/ant/entomb.md +106 -45
- package/.opencode/commands/ant/init.md +46 -48
- package/.opencode/commands/ant/organize.md +5 -5
- package/.opencode/commands/ant/resume.md +334 -0
- package/.opencode/commands/ant/seal.md +33 -24
- package/.opencode/commands/ant/status.md +11 -0
- package/.opencode/commands/ant/tunnels.md +149 -0
- package/.opencode/commands/ant/update.md +59 -16
- package/CHANGELOG.md +79 -0
- package/README.md +135 -353
- package/bin/cli.js +243 -122
- package/bin/generate-commands.sh +2 -2
- package/bin/lib/init.js +13 -3
- package/bin/lib/update-transaction.js +119 -117
- package/bin/sync-to-runtime.sh +5 -137
- package/bin/validate-package.sh +84 -0
- package/package.json +9 -6
- package/.opencode/agents/aether-architect.md +0 -66
- package/.opencode/agents/aether-guardian.md +0 -107
- package/.opencode/agents/workers.md +0 -1034
- package/runtime/QUEEN_ANT_ARCHITECTURE.md +0 -402
- package/runtime/data/signatures.json +0 -41
- package/runtime/docs/AETHER-2.0-IMPLEMENTATION-PLAN.md +0 -1343
- package/runtime/docs/AETHER-PHEROMONE-SYSTEM-MASTER-SPEC.md +0 -2642
- package/runtime/docs/PHEROMONE-INJECTION.md +0 -240
- package/runtime/docs/PHEROMONE-INTEGRATION.md +0 -192
- package/runtime/docs/PHEROMONE-SYSTEM-DESIGN.md +0 -426
- package/runtime/docs/README.md +0 -94
- package/runtime/docs/VISUAL-OUTPUT-SPEC.md +0 -219
- package/runtime/docs/biological-reference.md +0 -272
- package/runtime/docs/codebase-review.md +0 -399
- package/runtime/docs/command-sync.md +0 -164
- package/runtime/docs/constraints.md +0 -116
- package/runtime/docs/implementation-learnings.md +0 -89
- package/runtime/docs/namespace.md +0 -148
- package/runtime/docs/pathogen-schema-example.json +0 -36
- package/runtime/docs/pathogen-schema.md +0 -111
- package/runtime/docs/planning-discipline.md +0 -159
- package/runtime/docs/progressive-disclosure.md +0 -184
- package/runtime/lib/queen-utils.sh +0 -729
- package/runtime/planning.md +0 -159
- package/runtime/recover.sh +0 -136
- package/runtime/utils/xml-utils.sh +0 -2196
- package/runtime/workers-new-castes.md +0 -516
- /package/{runtime → .aether/docs/disciplines}/coding-standards.md +0 -0
- /package/{runtime → .aether/docs/disciplines}/debugging.md +0 -0
- /package/{runtime → .aether/docs/disciplines}/learning.md +0 -0
- /package/{runtime → .aether/docs/disciplines}/tdd.md +0 -0
- /package/{runtime → .aether/docs/disciplines}/verification-loop.md +0 -0
- /package/{runtime → .aether/docs/disciplines}/verification.md +0 -0
- /package/{runtime → .aether}/docs/pheromones.md +0 -0
- /package/{runtime → .aether}/model-profiles.yaml +0 -0
- /package/{runtime → .aether}/schemas/aether-types.xsd +0 -0
- /package/{runtime → .aether}/schemas/colony-registry.xsd +0 -0
- /package/{runtime → .aether}/schemas/pheromone.xsd +0 -0
- /package/{runtime → .aether}/schemas/prompt.xsd +0 -0
- /package/{runtime → .aether}/schemas/queen-wisdom.xsd +0 -0
- /package/{runtime → .aether}/schemas/worker-priming.xsd +0 -0
- /package/{runtime → .aether}/templates/QUEEN.md.template +0 -0
- /package/{runtime → .aether}/utils/colorize-log.sh +0 -0
- /package/{runtime → .aether}/utils/queen-to-md.xsl +0 -0
- /package/{runtime → .aether}/utils/spawn-tree.sh +0 -0
- /package/{runtime → .aether}/utils/spawn-with-model.sh +0 -0
- /package/{runtime → .aether}/utils/state-loader.sh +0 -0
- /package/{runtime → .aether}/utils/swarm-display.sh +0 -0
- /package/{runtime → .aether}/utils/watch-spawn-tree.sh +0 -0
- /package/{runtime → .aether}/utils/xml-core.sh +0 -0
|
@@ -28,7 +28,20 @@ Stop here. Do not proceed.
|
|
|
28
28
|
|
|
29
29
|
Read the `version` field — this is the **available version**.
|
|
30
30
|
|
|
31
|
-
### Step 2: Check Current Version
|
|
31
|
+
### Step 2: Check Pending State and Current Version
|
|
32
|
+
|
|
33
|
+
First, check for a pending sentinel using the Bash tool:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
test -f .aether/.update-pending && echo "PENDING" || echo "CLEAN"
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
If output is "PENDING":
|
|
40
|
+
- Output: `Detected incomplete update, re-syncing...`
|
|
41
|
+
- Run using the Bash tool: `rm -f .aether/.update-pending`
|
|
42
|
+
- Skip the version comparison entirely — proceed directly to Step 3.
|
|
43
|
+
|
|
44
|
+
If output is "CLEAN":
|
|
32
45
|
|
|
33
46
|
Use the Read tool to read `.aether/version.json`.
|
|
34
47
|
|
|
@@ -38,7 +51,7 @@ Otherwise, read the `version` field — this is the **current version**.
|
|
|
38
51
|
If current version equals available version, output:
|
|
39
52
|
|
|
40
53
|
```
|
|
41
|
-
Already up
|
|
54
|
+
Already up to date (v{version}).
|
|
42
55
|
|
|
43
56
|
System files and commands match the global hub.
|
|
44
57
|
Colony data (.aether/data/) is always untouched by updates.
|
|
@@ -46,21 +59,46 @@ Colony data (.aether/data/) is always untouched by updates.
|
|
|
46
59
|
|
|
47
60
|
Stop here. Do not proceed.
|
|
48
61
|
|
|
49
|
-
### Step 3:
|
|
62
|
+
### Step 3: Sync System Files from Hub
|
|
50
63
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
64
|
+
The hub stores all system files at `~/.aether/system/`.
|
|
65
|
+
|
|
66
|
+
Run ONE bash command that syncs everything:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
mkdir -p .aether/docs .aether/utils .aether/templates .aether/schemas .aether/exchange && \
|
|
70
|
+
cp -f ~/.aether/system/aether-utils.sh .aether/ && \
|
|
71
|
+
cp -f ~/.aether/system/workers.md .aether/ 2>/dev/null || true && \
|
|
72
|
+
cp -f ~/.aether/system/CONTEXT.md .aether/ 2>/dev/null || true && \
|
|
73
|
+
cp -f ~/.aether/system/model-profiles.yaml .aether/ 2>/dev/null || true && \
|
|
74
|
+
cp -Rf ~/.aether/system/docs/* .aether/docs/ 2>/dev/null || true && \
|
|
75
|
+
cp -Rf ~/.aether/system/utils/* .aether/utils/ 2>/dev/null || true && \
|
|
76
|
+
cp -Rf ~/.aether/system/templates/* .aether/templates/ 2>/dev/null || true && \
|
|
77
|
+
cp -Rf ~/.aether/system/schemas/* .aether/schemas/ 2>/dev/null || true && \
|
|
78
|
+
cp -Rf ~/.aether/system/exchange/* .aether/exchange/ 2>/dev/null || true && \
|
|
79
|
+
chmod +x .aether/aether-utils.sh && \
|
|
80
|
+
echo "System files synced"
|
|
54
81
|
```
|
|
55
82
|
|
|
56
|
-
|
|
83
|
+
Colony data (`.aether/data/`) is never touched.
|
|
84
|
+
|
|
85
|
+
If any sync step fails, output:
|
|
57
86
|
```
|
|
58
|
-
|
|
87
|
+
Update couldn't finish — some files didn't copy. Run /ant:update again to retry.
|
|
59
88
|
```
|
|
60
89
|
|
|
61
|
-
|
|
90
|
+
### Step 3.5: Sync Rules to .claude/rules/
|
|
62
91
|
|
|
63
|
-
|
|
92
|
+
Rules files teach Claude Code about the colony system. Sync them from the hub:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
# Sync rules if hub has them
|
|
96
|
+
if [ -d ~/.aether/system/rules ]; then
|
|
97
|
+
mkdir -p .claude/rules
|
|
98
|
+
cp -Rf ~/.aether/system/rules/* .claude/rules/ 2>/dev/null || true
|
|
99
|
+
echo "Rules synced"
|
|
100
|
+
fi
|
|
101
|
+
```
|
|
64
102
|
|
|
65
103
|
### Step 4: Sync Commands (with orphan cleanup)
|
|
66
104
|
|
|
@@ -71,29 +109,29 @@ For each directory pair, run using the Bash tool:
|
|
|
71
109
|
```bash
|
|
72
110
|
# Sync Claude commands
|
|
73
111
|
mkdir -p .claude/commands/ant
|
|
74
|
-
cp -R ~/.aether/commands/claude/* .claude/commands/ant/ 2>/dev/null
|
|
112
|
+
cp -R ~/.aether/system/commands/claude/* .claude/commands/ant/ 2>/dev/null
|
|
75
113
|
# Remove orphans: files in dest that aren't in hub
|
|
76
114
|
comm -23 \
|
|
77
115
|
<(cd .claude/commands/ant && find . -type f ! -name '.*' | sort) \
|
|
78
|
-
<(cd ~/.aether/commands/claude && find . -type f ! -name '.*' | sort) \
|
|
116
|
+
<(cd ~/.aether/system/commands/claude && find . -type f ! -name '.*' | sort) \
|
|
79
117
|
| while read f; do rm ".claude/commands/ant/$f" && echo " removed stale: .claude/commands/ant/$f"; done
|
|
80
118
|
echo "claude: done"
|
|
81
119
|
|
|
82
120
|
# Sync OpenCode commands
|
|
83
121
|
mkdir -p .opencode/commands/ant
|
|
84
|
-
cp -R ~/.aether/commands/opencode/* .opencode/commands/ant/ 2>/dev/null
|
|
122
|
+
cp -R ~/.aether/system/commands/opencode/* .opencode/commands/ant/ 2>/dev/null
|
|
85
123
|
comm -23 \
|
|
86
124
|
<(cd .opencode/commands/ant && find . -type f ! -name '.*' | sort) \
|
|
87
|
-
<(cd ~/.aether/commands/opencode && find . -type f ! -name '.*' | sort) \
|
|
125
|
+
<(cd ~/.aether/system/commands/opencode && find . -type f ! -name '.*' | sort) \
|
|
88
126
|
| while read f; do rm ".opencode/commands/ant/$f" && echo " removed stale: .opencode/commands/ant/$f"; done
|
|
89
127
|
echo "opencode: done"
|
|
90
128
|
|
|
91
129
|
# Sync agents
|
|
92
130
|
mkdir -p .opencode/agents
|
|
93
|
-
cp -R ~/.aether/agents/* .opencode/agents/ 2>/dev/null
|
|
131
|
+
cp -R ~/.aether/system/agents/* .opencode/agents/ 2>/dev/null
|
|
94
132
|
comm -23 \
|
|
95
133
|
<(cd .opencode/agents && find . -type f ! -name '.*' | sort) \
|
|
96
|
-
<(cd ~/.aether/agents && find . -type f ! -name '.*' | sort) \
|
|
134
|
+
<(cd ~/.aether/system/agents && find . -type f ! -name '.*' | sort) \
|
|
97
135
|
| while read f; do rm ".opencode/agents/$f" && echo " removed stale: .opencode/agents/$f"; done
|
|
98
136
|
echo "agents: done"
|
|
99
137
|
```
|
|
@@ -117,6 +155,11 @@ Then use the Write tool to write `.aether/version.json`:
|
|
|
117
155
|
}
|
|
118
156
|
```
|
|
119
157
|
|
|
158
|
+
Then delete any leftover pending sentinel (update is now complete) using the Bash tool:
|
|
159
|
+
```bash
|
|
160
|
+
rm -f .aether/.update-pending
|
|
161
|
+
```
|
|
162
|
+
|
|
120
163
|
### Step 6: Display Summary
|
|
121
164
|
|
|
122
165
|
Output:
|
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,85 @@ All notable changes to the Aether Colony project will be documented in this file
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
- README updated to v5.0.0
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## v5.0.0 — Worker Emergence (2026-02-20)
|
|
16
|
+
|
|
17
|
+
**Major milestone:** Every ant caste is now a real Claude Code subagent. 22 agents ship through the hub, ready for resolution via the Task tool.
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
- **22 Claude Code subagents**: Every ant caste is now a first-class subagent resolvable via the Task tool
|
|
21
|
+
- Core: Builder, Watcher
|
|
22
|
+
- Orchestration: Queen, Scout, Route-Setter, 4 Surveyors (nest, disciplines, pathogens, provisions)
|
|
23
|
+
- Specialists: Keeper, Tracker, Probe, Weaver, Auditor
|
|
24
|
+
- Niche: Chaos, Archaeologist, Gatekeeper, Includer, Measurer, Sage, Ambassador, Chronicler
|
|
25
|
+
- **Agent distribution pipeline**: `npm install -g .` syncs agents to hub at `~/.aether/system/agents-claude/`, `aether update` delivers to target repos
|
|
26
|
+
- **6 AVA tests for agent quality**: Frontmatter validation, tool restrictions, naming conventions, content standards
|
|
27
|
+
- **repo-structure.md**: Quick re-orientation guide for the codebase
|
|
28
|
+
|
|
29
|
+
### Fixed
|
|
30
|
+
- **Bash line wrapping bug**: Fixed 58 instances across 7 command files where description text was inside code blocks causing "with: command not found" errors
|
|
31
|
+
- **Lint regression test**: CLEAN-03 test scans both Claude and OpenCode command directories
|
|
32
|
+
|
|
33
|
+
### Changed
|
|
34
|
+
- **.aether/docs/ curated**: 8 keepers at root, 6 archived for reference
|
|
35
|
+
- **README.md updated**: Action-oriented tone, v5.0 agent capabilities featured, caste table by tier
|
|
36
|
+
- **ROADMAP.md and STATE.md**: v5.0 marked shipped, all 31 phases complete at 100%
|
|
37
|
+
|
|
38
|
+
### Phases Shipped
|
|
39
|
+
- **Phase 27**: Distribution Infrastructure + First Core Agents (4 plans)
|
|
40
|
+
- **Phase 28**: Orchestration Layer + Surveyor Variants (3 plans)
|
|
41
|
+
- **Phase 29**: Specialist Agents + Agent Tests (3 plans)
|
|
42
|
+
- **Phase 30**: Niche Agents (3 plans)
|
|
43
|
+
- **Phase 31**: Integration Verification + Cleanup (3 plans)
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
### Removed
|
|
48
|
+
- Old planning phases 10-19 archived to docs/plans/ (completed phases)
|
|
49
|
+
- Orphaned worktree salvage files moved to docs/worktree-salvage/
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## v4.0.0 -- Distribution Simplification
|
|
54
|
+
|
|
55
|
+
**Breaking change:** The `runtime/` staging directory has been removed. The npm package now reads directly from `.aether/`, with private directories (data/, dreams/, oracle/, etc.) excluded by `.aether/.npmignore`.
|
|
56
|
+
|
|
57
|
+
### Changed
|
|
58
|
+
- `.aether/` is now directly included in the npm package (private dirs excluded by `.aether/.npmignore`)
|
|
59
|
+
- `bin/validate-package.sh` replaces `bin/sync-to-runtime.sh` — validates required files, no copying
|
|
60
|
+
- Hub sync uses exclude-based approach instead of triplicate 59-62 file allowlists
|
|
61
|
+
- Pre-commit hook repurposed for validation (no more runtime/ sync)
|
|
62
|
+
- `aether update` uses `syncAetherToRepo` (exclude-based) for all system file distribution
|
|
63
|
+
- All three distribution paths (system files, commands, agents) unified in `setupHub()`
|
|
64
|
+
|
|
65
|
+
### Removed
|
|
66
|
+
- `runtime/` staging directory — eliminated entirely
|
|
67
|
+
- `bin/sync-to-runtime.sh` — replaced by validation-only script
|
|
68
|
+
- `SYSTEM_FILES` allowlist arrays in cli.js and update-transaction.js
|
|
69
|
+
- `copySystemFiles()` and `syncSystemFilesWithCleanup()` functions
|
|
70
|
+
|
|
71
|
+
### Added
|
|
72
|
+
- `bin/validate-package.sh` — pre-packaging validation with `--dry-run` mode
|
|
73
|
+
- Private data exposure guard — blocks packaging if .npmignore doesn't cover private dirs
|
|
74
|
+
- Migration message for users upgrading from v3.x
|
|
75
|
+
- `npm pack --dry-run` recommended for verifying package contents
|
|
76
|
+
|
|
77
|
+
### Fixed
|
|
78
|
+
- ISSUE-004: Template path hardcoded to runtime/ — resolved by eliminating runtime/ entirely
|
|
79
|
+
|
|
80
|
+
### Migration
|
|
81
|
+
- Run `npm install -g aether-colony` to get v4.0
|
|
82
|
+
- Your colony state and data are unaffected
|
|
83
|
+
- The only change is how the package is built — distributed content is identical
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
8
87
|
## [3.1.5] - 2026-02-15
|
|
9
88
|
|
|
10
89
|
### Fixed
|