From 0a7f2694814a8bdd922655835e108b3a2e31decf Mon Sep 17 00:00:00 2001 From: Didactyl User Date: Sat, 8 Aug 2026 06:38:57 -0400 Subject: [PATCH] v0.2.67 - Add n=none to relay menu to deselect all relays; add blank line before 'Type ok' prompt in admin keypair generation --- README.md | 4 ++-- src/main.h | 4 ++-- src/setup_wizard.c | 10 +++++++++- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index f892874..7710f96 100644 --- a/README.md +++ b/README.md @@ -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.66 +## Current Status — v0.2.67 **Active build — this project is barely working. Experiment at your own risk.** -> Last release update: v0.2.66 — Add curl_easy_strerror debugging to nostr_http.c and CA bundle setup in wizard fetch_models_for_llm_config to diagnose ppq.ai /models transport error +> Last release update: v0.2.67 — Add n=none to relay menu to deselect all relays; add blank line before 'Type ok' prompt in admin keypair generation - Connects to configured relays with auto-reconnect and relay state transition logging - Publishes configured startup events per relay as each relay becomes connected diff --git a/src/main.h b/src/main.h index 6a1e347..6416c45 100644 --- a/src/main.h +++ b/src/main.h @@ -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 66 -#define DIDACTYL_VERSION "v0.2.66" +#define DIDACTYL_VERSION_PATCH 67 +#define DIDACTYL_VERSION "v0.2.67" // Agent metadata #define DIDACTYL_NAME "Didactyl" diff --git a/src/setup_wizard.c b/src/setup_wizard.c index 34e0e08..af8226c 100644 --- a/src/setup_wizard.c +++ b/src/setup_wizard.c @@ -1891,6 +1891,7 @@ static int prompt_admin_pubkey_with_header(didactyl_config_t* cfg, fprintf(stderr, " npub: %s\n", npub); fprintf(stderr, "%s nsec: %s%s\n", ANSI_YELLOW, nsec, ANSI_RESET); fprintf(stderr, "%s Save this nsec now. It will not be persisted.%s\n", ANSI_YELLOW, ANSI_RESET); + fprintf(stderr, "\n"); char ok[WIZARD_LINE_MAX] = {0}; if (read_line_prompt(" Type 'ok' when saved (or q to quit): ", ok, sizeof(ok)) != 0) return -1; if (line_is_quit(ok)) return -1; @@ -2091,7 +2092,7 @@ static int prompt_relay_configuration_with_header(didactyl_config_t* cfg, all_relays[i] ? all_relays[i] : ""); } fprintf(stderr, "\n"); - fprintf(stderr, " Commands: a=add, d=done, b=back, q=quit\n"); + fprintf(stderr, " Commands: a=add, d=done, n=none, b=back, q=quit\n"); if (read_line_prompt("> ", input, sizeof(input)) != 0) return -1; if (line_is_quit(input)) return -1; @@ -2158,6 +2159,12 @@ static int prompt_relay_configuration_with_header(didactyl_config_t* cfg, for (int i = 0; i < all_count; i++) free(all_relays[i]); return 0; } + if (c == 'n') { + for (int i = 0; i < all_count; i++) { + relay_enabled[i] = 0; + } + continue; + } if (c == 'a') { if (read_line_prompt(" Relay URL (wss:// or ws://): ", input, sizeof(input)) != 0) { for (int i = 0; i < all_count; i++) free(all_relays[i]); @@ -3121,6 +3128,7 @@ static int new_agent_identity_step(didactyl_config_t* cfg) { fprintf(stderr, "%sSave this nsec now. It will not be persisted unless you explicitly export with nsec.%s\n", ANSI_YELLOW, ANSI_RESET); + fprintf(stderr, "\n"); char ok[WIZARD_LINE_MAX] = {0}; if (read_line_prompt("Type 'ok' when saved (or q to quit): ", ok, sizeof(ok)) != 0) return -1; if (line_is_quit(ok)) return -1;