feat: release Dever 0.1.4 with enforceable project guidance
This commit is contained in:
1 parent
201bdee372
commit
89629c2197
86 files changed
+2798
-338
No files matched your search
@@ -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:
|
||||
|
||||
Reference in new issue
Block a user