Write down how the phone will add hosts, before it adds any #2

Merged
jaap-jan merged 1 commits from add-hosts-on-the-phone into main 2026-08-02 20:08:50 +00:00
Owner

The + button the design has asked for twice needs three things that do not
exist: a tag, a group's parent, and a group's defaults. Two of them are
refused on the record — HostGroupSecret argues groups are flat, and the
theme argues an unused style is a claim the control exists.

So the plan goes in first, with the decisions and the reasons. Tags become a
real item over the reserved slot, a host names them, and membership merges
through ThreeWayMerge.Map rather than as a whole value, so two people tagging
one host both keep theirs — which is what HostTag was going to buy. Group
defaults inherit rather than copy, shown as the field's placeholder, which is
what makes editing a group afterwards mean anything. A parent arrives with a
visited-set walk, because with inheritance a cycle is no longer an undrawable
sidebar — it is a shell that never opens.

Also written down: that Port has to go nullable and everything that touches,
the byte pin it will trip, and the schema-version branch whose absence would
make an inheriting host unreadable rather than read-only on every client that
has not been upgraded.

Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com

The + button the design has asked for twice needs three things that do not exist: a tag, a group's parent, and a group's defaults. Two of them are refused on the record — HostGroupSecret argues groups are flat, and the theme argues an unused style is a claim the control exists. So the plan goes in first, with the decisions and the reasons. Tags become a real item over the reserved slot, a host names them, and membership merges through ThreeWayMerge.Map rather than as a whole value, so two people tagging one host both keep theirs — which is what HostTag was going to buy. Group defaults inherit rather than copy, shown as the field's placeholder, which is what makes editing a group afterwards mean anything. A parent arrives with a visited-set walk, because with inheritance a cycle is no longer an undrawable sidebar — it is a shell that never opens. Also written down: that Port has to go nullable and everything that touches, the byte pin it will trip, and the schema-version branch whose absence would make an inheriting host unreadable rather than read-only on every client that has not been upgraded. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
jaap-jan added 1 commit 2026-08-02 20:08:42 +00:00
Write down how the phone will add hosts, before it adds any
ci / build and test (pull_request) Successful in 1m12s
ci / android head (pull_request) Failing after 5s
ci / api image (pull_request) Successful in 3s
9629b7d938
The + button the design has asked for twice needs three things that do not
exist: a tag, a group's parent, and a group's defaults. Two of them are
refused on the record — HostGroupSecret argues groups are flat, and the
theme argues an unused style is a claim the control exists.

So the plan goes in first, with the decisions and the reasons. Tags become a
real item over the reserved slot, a host names them, and membership merges
through ThreeWayMerge.Map rather than as a whole value, so two people tagging
one host both keep theirs — which is what HostTag was going to buy. Group
defaults inherit rather than copy, shown as the field's placeholder, which is
what makes editing a group afterwards mean anything. A parent arrives with a
visited-set walk, because with inheritance a cycle is no longer an undrawable
sidebar — it is a shell that never opens.

Also written down: that Port has to go nullable and everything that touches,
the byte pin it will trip, and the schema-version branch whose absence would
make an inheriting host unreadable rather than read-only on every client that
has not been upgraded.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
jaap-jan merged commit c9eca96ce7 into main 2026-08-02 20:08:50 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: DodoTech-Public/DodoSSH#2