feat(town): demo folklore tour, roommates, and fullscreen - #11
Conversation
Pin the full haunt/parcel ladder in demo, collapse absolute worktreePath agents onto one cramped cottage, and add stage fullscreen with an F key.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 94beb3c0a8
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Anchor shared worktrees to a stable host id, remap lodger parents so sheds stay attached, and let Escape exit CSS fullscreen without canvas focus.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b66244bc71
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Keep shared-plot hosts on earliest id only, light windows when any roommate works, and keep PR filters matching the whole household.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9c0f7c27ed
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Group roommates from the full feed before settled filtering, surface a blocked roommate on the cottage marker, and ignore bubbled Escape after the canvas already handled it.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6e21c4467e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Key layout slots by worktree plotKey, keep roommate sprites talkable when the host is indoors, and dispatch the household PR that matches the filter.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d667786670
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
|
||
| for (const [key, members] of groups.entries()) { | ||
| if (members.length === 1) { | ||
| result.push({ ...members[0], roommates: [], plotKey: "wt:" + key }); |
There was a problem hiding this comment.
Keep plot keys stable when path metadata changes
When a feed first omits worktreePath and supplies it on a later poll, this changes the same agent's key from its ID to wt:<path>; createTownLayout has no slot under the new key and allocates a different position. The reverse happens if the path temporarily disappears, and newly recognized roommate groups likewise move to a third slot instead of reusing a member's existing one. Preserve or alias the prior slot when the grouping key changes so ordinary metadata enrichment cannot move cottages.
AGENTS.md reference: AGENTS.md:L67-L68
Useful? React with 👍 / 👎.
| ctx.globalAlpha=(filter&&filter!==townKey(p.agent))||!observatory?.visible(p.agent)?0.3:1; | ||
| observatory?.drawDispatch(ctx,p,t); | ||
| const bubble=statusBubbleAnchor({agent:p.agent,plot:p,routine:bedtimeFrames.get(p.agent.id),actor:actors.get(p.agent.id),time:t,reduce}); | ||
| observatory?.drawDispatch(ctx,{...p,agent:householdDispatchAgent(p.agent, a=>prStage(a.pr)===observatory.state.prFilter)},t); |
There was a problem hiding this comment.
Route parcel clicks to the displayed roommate PR
When this selects a roommate's outstanding or filter-matching PR, the parcel is rendered from that roommate, but handleClick() still reads plot.agent.pr and opens or displays the host's PR desk. Thus a visible roommate parcel can open the wrong URL or an empty host desk. Fresh evidence after the earlier thread is that only the drawing path now calls householdDispatchAgent; the click path at observatory.mjs:330-332 still dereferences the host.
Useful? React with 👍 / 👎.
| // Roommates keep their own outdoor presence even when the host is indoors. | ||
| const stoopX = a.indoors ? door.x : a.x; | ||
| const stoopY = a.indoors ? door.y : a.y; | ||
| (ag.roommates||[]).forEach((mate,i)=>{ |
There was a problem hiding this comment.
Keep roommate targets aligned with bedtime rendering
Once a nonworking host's bedtime routine becomes settled, the enclosing guard at line 1744 skips this roommate-rendering loop, even if a roommate is working. residentTargets() does not consult the bedtime routine and continues exposing the roommate at the stoop, leaving an invisible area that still triggers E/click conversation. Fresh evidence beyond the earlier offline-host case is this independent nighttime routine.settled path; either keep the roommate visible or suppress/move its interaction target with the same predicate.
AGENTS.md reference: AGENTS.md:L70-L71
Useful? React with 👍 / 👎.
Babysit stop —
|
|
To use Codex here, create an environment for this repo. |
The night pass redrew only the host name, so the +N count stayed in dark wood ink and vanished against the blue palette.
Summary
worktreePathshare one cottage plot with cramped roommate spritesTest plan
npm test/?demo=1, toggle settled, confirm Reed/Sable/Moss haunt stages and parcel ladder+1