Skip to content

ux: clearer menus — give list says where a person stands, never their name - #91

Merged
dop42 merged 1 commit into
mainfrom
ux/give-no-names
Oct 4, 2026
Merged

dop42 merged 1 commit into
mainfrom
ux/give-no-names

Conversation

@dop42

@dop42 dop42 commented Oct 4, 2026

Copy link
Copy Markdown
Contributor

This follows the owner's decision on the inventory give list: no character names. In roleplay a name is learnt by meeting someone, so the list must not reveal it to a stranger standing within arm's reach. This reverses that part of #90.

Before → after

  • Before (ux: clearer menus — X conflict fixed, confirms, refusal params, resume card, give counts, garage names, money format #90): each row showed the character's name, e.g. Vee Vector with 0.5m beside it, and the server sent name in the nearby payload.
  • After: each row reads To your left · 1.2 m / À votre gauche · 1,2 m, with #12 beside it.
    • Side: ahead, behind, left or right, worked out on the server from the giver's facing (the player snapshot heading, using the same yaw convention as World.Ahead).
    • Distance: shown with the language's decimal mark.
    • No facing: on a host that cannot read the giver's facing, no side is guessed and the row shows the distance alone.
  • No name on the wire: the server no longer reads or sends a name for this payload. It is absent from the data, not just hidden on the page.
  • Code comment: it now records the owner's decision ("never a name").

Tests

  • No leak: both characters in the test carry a name, and the test requires that no field of the nearby answer contains it or is called name.
  • Side: checked for facing north (the other player is on the right), facing west (behind), and no facing (no side).
  • Results: lua tests/run.lua gives 4650 checks, 0 failed. luac -p, the sandbox-globals check, and npm ci / typecheck / build all pass, with web/index.html rebuilt. No new files.

🤖 Generated with Claude Code

The owner's decision, reversing a change that shipped in #90: in roleplay a
character's name is learnt by meeting them, and a give list that printed it
told every stranger within arm's reach who they were.

The server no longer puts a name in the nearby answer at all -- it is absent
from the wire, not hidden on the page. Each entry carries the id, the
rounded distance and which side of the giver the person stands on, worked
out from the giver's facing (the snapshot heading, the convention
`World.Ahead` already uses). The row reads `To your left · 1.2 m` /
`À votre gauche · 1,2 m` with the language's decimal mark, and `#12` beside
it. On a host that cannot read the facing, no side is guessed and the row
is the distance alone.

The code comment records the decision as "never a name". The test gives
both characters a name and requires that none appears in any field of the
answer, and checks the side for two facings and for none.

web/index.html rebuilt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.

1 participant