Skip to content

Config screens: pick settings from what the file and machine have - #57

Open
Neo-Desktop wants to merge 3 commits into
mainfrom
claude/project-thread-i21565
Open

Neo-Desktop wants to merge 3 commits into
mainfrom
claude/project-thread-i21565

Conversation

@Neo-Desktop

@Neo-Desktop Neo-Desktop commented Nov 11, 2026 •

Copy link
Copy Markdown
Collaborator

Requested by Sydney · project thread

Rebased onto main now that #56 (DNS + the BBS's CA) is merged.

What

Most free-text settings in bbs config are now lists to pick from. Each list is built from what the file and the machine already have, with a short note next to each value:

Setting Offered
tls_cert / cert_file acme, each acme:NAME (with its domains), ca where the BBS's CA (its services sub-CA) can sign it (msn, ymsg, oscar, gemini), and cert files other sections use
tls_key / key_file the key paired with the chosen cert elsewhere in the file or beside it on disk, then other keys; shows "not needed with acme/ca"
listening addresses :PORT, 127.0.0.1:PORT, each local IP at the current (or sample) port; values another section uses are marked "taken by [x] key"
[dns] answers IPs the services listen on, and this machine's
[dns] primary/backup resolv.conf's servers plus Cloudflare, Google, Quad9, OpenDNS
levels (new/validated users', a user's, mrc/menu require) the [level N]s with their names
menu items BBS actions, each door (with its description), other menus, screens, scripts, areas; plus a new Add a menu item action (and Carry a conference for QWK networks)
menu.screen, link.aka, feed.group/area, user/group to run as, interfaces the screens dir, [fido] addresses, catalogue groups, DB areas, /etc/passwd and /etc/group, net.Interfaces
multi-value: dns.services, feeds.catalog, time.servers, mx.dnsbl, gopher/gemini areas checkboxes, joined by commas
fixed enums (ACME challenge/key type/dns_check, mail outbound, every TLS mode, door32_comm, ircpeer protocol, PTP timestamping, ...) closed lists with notes; anything else is refused
open suggestions (log, ACME CA and DNS provider, phone country, socket mode, GeoIP credit) common values, or type your own

How it works

  • view.Entry gains Open (suggestions, own value allowed), Multi (some at once) and ChoiceNotes.
  • Full-screen terminal: the choice box shows the notes in a column, [x] checkboxes for multi lists (Space toggles), a "Type another value..." line for open ones, and (default: N) for the unset value.
  • 3270: S next to such a line opens a numbered table (view.PickChoice). The value can still be typed over.
  • Plain terminals: the line's number opens the same table instead of cycling.
  • F1 help lists every choice with its note.
  • The wiki's Configuration page has a new "Values picked from what there is" section.

Testing

  • go test ./... and go vet pass on the rebased branch.
  • New tests: confui/choices_test.go (cert/key pairing, address "taken by" notes, closed vs multi validation, level names, adding a menu item by picking a door, PickChoice toggling), plus open/own-value/multi cases in textui TestDeskSheet.
  • Ran bbs config in a pty against a sample file and checked the IRC cert list, the address list, the levels list and the DNS services checkboxes on screen.
  • Not yet tried on a real 3270.

🤖 Generated with Claude Code

https://claude.ai/code/session_01B82eRRorB6EaJ9gFhio2Fa

@Neo-Desktop Neo-Desktop self-assigned this Nov 11, 2026
Base automatically changed from claude/project-thread-lrsbkp to main November 11, 2026 12:38
Most free-text settings of the configuration screens are now lists to pick
from, made from what there is: certificates ([acme]'s, and the files other
servers use) and the key that goes with one; an address's every-address,
this-machine and each-IP forms, marked when another server has it; [dns]
answers from the services' IPs; levels by their names; a menu item's
actions (the doors, menus, screens, scripts, areas), with Add a menu item;
the screens, AKAs, feed groups and areas, the machine's users and groups;
and the fixed values of ACME, TLS, outbound mail and the rest, with notes.

A list may be open (a value of one's own typed too) or of some at once
(by commas).  The full-screen list shows notes and checkboxes; a 3270's S
and a plain terminal's number open a numbered table; F1 lists the choices.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B82eRRorB6EaJ9gFhio2Fa
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B82eRRorB6EaJ9gFhio2Fa
@Neo-Desktop
Neo-Desktop force-pushed the claude/project-thread-i21565 branch from 1ce37c0 to f884eec Compare November 11, 2026 12:40

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants