Compare commits

...

2 Commits

5 changed files with 45 additions and 6 deletions

View File

@@ -55,11 +55,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.0.73
## Current Status — v0.0.75
**Active build — this project is barely working. Experiment at your own risk.**
> Last release update: v0.0.73Refined Nostr handler and tool dispatch/schema updates for relay and my-events flows
> Last release update: v0.0.75Add rsync deploy script and wizard root-shell handoff for service install path
- Connects to configured relays with auto-reconnect and relay state transition logging
- Publishes configured startup events per relay as each relay becomes connected

22
deploy_lt.sh Executable file
View File

@@ -0,0 +1,22 @@
#!/bin/bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SOURCE_BINARY="$SCRIPT_DIR/didactyl_static_x86_64"
REMOTE_TARGET="ubuntu@laantungir.net:~/didactyl"
if ! command -v rsync >/dev/null 2>&1; then
echo "ERROR: rsync is not installed or not in PATH"
exit 1
fi
if [ ! -f "$SOURCE_BINARY" ]; then
echo "ERROR: Source binary not found: $SOURCE_BINARY"
echo "Build it first so didactyl_static_x86_64 exists."
exit 1
fi
echo "Deploying $SOURCE_BINARY to $REMOTE_TARGET"
rsync -avz --progress "$SOURCE_BINARY" "$REMOTE_TARGET"
echo "Deployment complete."

View File

@@ -3,7 +3,7 @@
#define DIDACTYL_DEFAULT_SKILL_D_TAG "didactyl-default"
#define DIDACTYL_DEFAULT_SKILL_KIND 31124
#define DIDACTYL_DEFAULT_SKILL_TAGS_JSON "[[\"app\",\"didactyl\"],[\"scope\",\"private\"]]"
#define DIDACTYL_DEFAULT_SKILL_TAGS_JSON "[[\"d\",\"didactyl-default\"],[\"app\",\"didactyl\"],[\"scope\",\"private\"]]"
#define DIDACTYL_STARTUP_KIND_PROFILE 0
#define DIDACTYL_STARTUP_KIND_CONTACTS 3

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 0
#define DIDACTYL_VERSION_PATCH 73
#define DIDACTYL_VERSION "v0.0.73"
#define DIDACTYL_VERSION_PATCH 75
#define DIDACTYL_VERSION "v0.0.75"
// Agent metadata
#define DIDACTYL_NAME "Didactyl"

View File

@@ -1373,7 +1373,24 @@ static int install_system_service_with_dedicated_user(const didactyl_config_t* c
if (!cfg || cfg->keys.nsec[0] == '\0') return -1;
if (geteuid() != 0) {
fprintf(stderr, "%sSystem install requires root (run with sudo).%s\n", ANSI_RED, ANSI_RESET);
fprintf(stderr, "%sSystem install requires root.%s\n", ANSI_RED, ANSI_RESET);
fprintf(stderr, " You can open a root shell now and then re-run this install step.\n");
print_option('o', "pen root shell now (sudo -i)");
print_option('r', "eturn without installing");
wizard_option_t root_opts[] = {{'o', ""}, {'r', ""}};
char root_choice = read_menu_choice(root_opts, 2);
if (root_choice == 'o') {
char* sudo_argv[] = {"sudo", "-i", NULL};
if (run_command_local(sudo_argv) != 0) {
fprintf(stderr, "%sFailed to open root shell via sudo.%s\n", ANSI_RED, ANSI_RESET);
} else {
fprintf(stderr, "%sReturned from root shell.%s\n", ANSI_YELLOW, ANSI_RESET);
}
fprintf(stderr,
" Re-run didactyl as root and choose install again to complete system service setup.\n");
}
return -1;
}