Compare commits

...

2 Commits

5 changed files with 61 additions and 6 deletions

View File

@@ -54,11 +54,11 @@ Skills compose by adoption-list order (`10123`) and trigger tags carry runtime e
Didactyl will support local inference, which is very privacy preserving. Remote inference does however have it's advantages, and in those cases Didactyl supports using Bitcoin Lightning and eCash inference providers.
## Current Status — v0.2.17
## Current Status — v0.2.19
**Active build — this project is barely working. Experiment at your own risk.**
> Last release update: v0.2.17Add Python test harness and improve increment_and_push diagnostics and git identity handling
> Last release update: v0.2.19Default test harness execution to build_static debug binary and add skip-build override flag
- Connects to configured relays with auto-reconnect and relay state transition logging
- Publishes configured startup events per relay as each relay becomes connected

View File

@@ -142,6 +142,27 @@ ensure_git_identity() {
fi
}
# Ensure origin remote uses SSH for git.laantungir.net to avoid HTTPS username prompts
ensure_origin_ssh_remote() {
local origin_url
origin_url=$(git remote get-url origin 2>/dev/null || true)
if [[ -z "$origin_url" ]]; then
print_warning "No 'origin' remote found; skipping remote URL normalization"
return 0
fi
# Convert only this host from HTTPS to SSH (uses ~/.ssh/config Host git.laantungir.net)
if [[ "$origin_url" =~ ^https://git\.laantungir\.net/(.+)\.git$ ]]; then
local repo_path
local ssh_url
repo_path="${BASH_REMATCH[1]}"
ssh_url="git@git.laantungir.net:${repo_path}.git"
git remote set-url origin "$ssh_url"
print_status "Updated origin remote to SSH: $ssh_url"
fi
}
# Function to get current version and increment appropriately
increment_version() {
local increment_type="$1" # "patch", "minor", or "major"
@@ -543,6 +564,7 @@ main() {
# Check prerequisites
check_git_repo
ensure_git_identity
ensure_origin_ssh_remote
if [[ "$RELEASE_MODE" == true ]]; then
print_status "=== RELEASE MODE ==="

View File

@@ -12,8 +12,8 @@
// Using DIDACTYL_ prefix to avoid conflicts with nostr_core_lib VERSION macros
#define DIDACTYL_VERSION_MAJOR 0
#define DIDACTYL_VERSION_MINOR 2
#define DIDACTYL_VERSION_PATCH 17
#define DIDACTYL_VERSION "v0.2.17"
#define DIDACTYL_VERSION_PATCH 19
#define DIDACTYL_VERSION "v0.2.19"
// Agent metadata
#define DIDACTYL_NAME "Didactyl"

View File

@@ -3,6 +3,7 @@ from __future__ import annotations
import argparse
import datetime as dt
import subprocess
import sys
from pathlib import Path
@@ -20,7 +21,7 @@ from tests.harness.test_runner import TestRunner
def parse_args() -> argparse.Namespace:
parser = argparse.ArgumentParser(description="Didactyl automated test harness")
parser.add_argument("--config", default="tests/configs/test_genesis.jsonc")
parser.add_argument("--binary", default="./didactyl")
parser.add_argument("--binary", default=None, help="Path to didactyl binary; if omitted, build_static --debug is used")
parser.add_argument("--suite", action="append", help="Run only this suite (repeatable)")
parser.add_argument("--test", action="append", help="Run only this test name (repeatable)")
parser.add_argument("--api-port", type=int, default=8485)
@@ -30,9 +31,33 @@ def parse_args() -> argparse.Namespace:
parser.add_argument("--output-dir", default=None)
parser.add_argument("--verbose", action="store_true")
parser.add_argument("--no-restart", action="store_true")
parser.add_argument(
"--skip-build-static-debug",
action="store_true",
help="Do not invoke ./build_static.sh --debug before running",
)
return parser.parse_args()
def build_static_debug_binary() -> None:
cmd = ["./build_static.sh", "--debug"]
print("Building debug static binary via ./build_static.sh --debug ...")
subprocess.run(cmd, check=True)
def resolve_default_debug_binary() -> Path:
candidates = [
Path("./didactyl_static_x86_64_debug"),
Path("./didactyl_static_arm64_debug"),
Path("./didactyl_static_armv7_debug"),
Path("./didactyl_static_armv6_debug"),
]
existing = [p for p in candidates if p.exists() and p.is_file()]
if existing:
return existing[0]
return Path("./didactyl_static_x86_64_debug")
def main() -> int:
args = parse_args()
@@ -40,9 +65,17 @@ def main() -> int:
output_dir = args.output_dir or f"tests/results/{run_ts}"
Path(output_dir).mkdir(parents=True, exist_ok=True)
binary = Path(args.binary)
if not args.skip_build_static_debug:
try:
build_static_debug_binary()
except subprocess.CalledProcessError as exc:
print(f"build_static debug build failed with exit code {exc.returncode}")
return 2
binary = Path(args.binary) if args.binary else resolve_default_debug_binary()
if not binary.exists():
print(f"didactyl binary not found: {binary}")
print("Pass --binary <path> or run ./build_static.sh --debug")
return 2
config = Path(args.config)