feat: release Dever 0.1.4 with enforceable project guidance

This commit is contained in:
Antigravity committed 2026-10-09 05:33:57 +00:00
1 parent 201bdee372
commit 89629c2197
86 files changed
+2798 -338

No files matched your search

+18 -6
View File
@@ -128,7 +128,7 @@ class InstalledDaemon:
self.__exit__(None, None, None)
raise
def command(self, *arguments):
def command(self, *arguments, cwd="/"):
if self.child.poll() is not None:
raise RuntimeError("owned daemon exited")
expected = self.image.stat()
@@ -137,7 +137,7 @@ class InstalledDaemon:
raise RuntimeError("owned namespace identity changed")
return execute([
"/usr/bin/nsenter", "--target", str(self.pid), "--all", "--root",
"--wdns=/", "--", "/usr/local/bin/dever", *arguments,
f"--wdns={cwd}", "--", "/usr/local/bin/dever", *arguments,
])
def __exit__(self, *_):
@@ -277,10 +277,22 @@ def accept(release, assets, image, report, init, extension_helper=None):
expected = f"/opt/dever/versions/{manifest['version']}/skills/dever-language"
if daemon.command("skill", "path") != expected:
raise RuntimeError("versioned skill did not match installed core")
daemon.command("skill", "install", "/ai-skill")
if not (image / "ai-skill/SKILL.md").is_file():
raise RuntimeError("missing installed skill entry")
passed("versioned_skill_resolution_and_loader_install")
rules = image / "first/AGENTS.md"
project_rules = b"# Project-specific rules\n\n"
rules.write_bytes(project_rules + (
"<!-- dever-language:start -->\n"
"Previous Dever rules\n"
"<!-- dever-language:end -->\n"
).encode())
daemon.command("skill", "install", cwd="/first")
template = installed / "skills/dever-language/assets/template/AGENTS.md"
expected_rules = project_rules + template.read_bytes()
if rules.read_bytes() != expected_rules:
raise RuntimeError("project rules differ from the signed template or user rules were lost")
daemon.command("skill", "install", cwd="/first")
if rules.read_bytes() != expected_rules:
raise RuntimeError("repeated skill installation changed project rules")
passed("versioned_skill_resolution_and_project_rules_install")
try:
daemon.command("build", "/first", "--target", "linux-aarch64", "--output", "/first/program.arm64")
except RuntimeError as error: