A snapshot: read at commit 707a04c7ce8 on 2026-10-18T00:06:01Z by majordomus 0.29.0. Nothing on this page is read again. See it live
I2411
A server whose mesh is enabled is reachable on the tailnet and the LAN, and only by a trusted peer
Where it stands
devtask.issue- Readiness
- ready no dependency and no gate holds it; nobody has started it
- Status
- READY
- Can start
- startable
- Milestone
- Milestone status
- PLANNED
- Wave
0- Waiting on
- none
- Holds back
- none
- Behind it in all
0- Evidence
0of1
Moves
plan.transitionWhat it is
- Objective
- When the mesh is enabled, the shared server listens and advertises on the machine's tailnet and LAN addresses as well as loopback, so a trusted peer can dial it, while a request from a non-loopback address stays limited to what runtime-trust allows.
- Why
- The server binds 127.0.0.1 unless --host or MAJORDOMUS_HTTP_HOST says otherwise (apps/majordomus-cli/src/cli.rs:3355-3362) and advertises only loopback (mesh/address.rs:39-45), so two machines on default settings can never dial each other (docs/MESH.md:383-391). The hubs in this repository are servers started by hand on 0.0.0.0.
- Now
- Cross-machine links exist only through hand-started hubs.
- Wanted
- After the remote-caller restrictions of I2123 (PR #860) land, a mesh-enabled server binds the addresses it advertises (tailnet and LAN, never a public interface), the advertised endpoints are the bound ones, and a non-loopback caller is held to the remote-caller rule.
- Done when
- unknown: the record declares no `completion`
- Risk
- unknown: the record declares no `risk`
Acceptance
- A server started with the mesh enabled answers a trusted peer on its tailnet address with no --host
- The same server refuses a write from a non-loopback caller, as runtime-trust requires
- A server with the mesh disabled still binds loopback only
- Validation
bin/majordomus plan validatecargo test --test serve_lifecycle- Evidence required
mesh_server_reachable_on_tailnet_test- Evidence present
- unknown: the record carries no `evidence` entries
Scope
- Touches
apps/majordomus-cli/src/cli.rsapps/majordomus-cli/src/shared.rsapps/majordomus-cli/src/mesh/address.rsdocs/MESH.mdtest/cases- Not
- unknown: the record declares no `non_scope`
- Depends on
- none
- Priority
- p0
- Profile
- implementation
- Parallel safe
- false
- Owner
- unknown: the record declares no `owner`
The work so far
- Branches
- none
- Merged
- none
- Commits
0- Trunk
- master
- Sessions
- none
- Created
- 2026-10-10
- Updated
- 2026-10-10
- Started
- unknown: the record declares no `started_at`
- Verified
- unknown: the record declares no `verified_at`
- Completed
- unknown: the record declares no `completed_at`
Synchronisation
- Adapter
scripts/github-sync- Repository
- unknown: the derived plan's header carries no repository
- External issue
- unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it
- State there
- unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it
Findings
| Level | Code | Message | Reproduce |
|---|---|---|---|
| WARN | scope_conflict | shares docs/MESH.md with I2412; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares docs/MESH.md with I2413; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares apps/majordomus-cli/src/cli.rs with I2414; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares docs/MESH.md with I2415; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2653; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2713; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2714; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2716; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2717; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2718; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2720; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares apps/majordomus-cli/src/mesh/address.rs with I2723; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2731; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2734; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2740; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2742; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2747; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2760; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2786; they may not run concurrently | majordomus plan validate |