Skip to content

iPhone: the plan shows what it knows and what it guesses (plan pass 4) - #60

Closed
frahlg wants to merge 2 commits into
claude/ios-plan-savingfrom
claude/ios-plan-known
Closed

frahlg wants to merge 2 commits into
claude/ios-plan-savingfrom
claude/ios-plan-known

Conversation

@frahlg

@frahlg frahlg commented Oct 14, 2026

Copy link
Copy Markdown
Member

Plan pass, change 4 of 5: the plan shows what it knows and what it guesses, never as a percentage. Stacked on change 3 (#59).

What changes

The prices are known; the sun and the home's use are a forecast. The plan now draws the two differently, and says how far the household's style leans on the forecast.

The sun on the dial is dashed. The prices it plans on stay solid ticks. The plan widget draws the same face, so it gets the dash too, sized for it.

Unpriced quarters on Now's strip are hatched stubs. Until the market publishes tomorrow's prices, those quarters have no level to draw; a stub with fine hatching says "not priced yet" where a bar would look like a price. The dial already drew such quarters as stubs.

A style other than balanced says so under the planned line:

FÖRSIKTIG MED PROGNOSEN

Nothing is said for balanced, or before the box has named its style. No confidence figure and no band, as the design pass left out on purpose.

How

PlanStrip.pending holds the runs of quarters with no price level; PlanStripDrawing hatches them, clipped to a stub two levels high. DialGeometry.sunDash sizes the dash for the app and the widget. The style line reads ModeModel.shownStyle, so it follows the box.

A second commit adds two debug flags to the demo for the pictures: -FTWDemoUnpublished YES holds tomorrow's prices back, and -FTWDemoSafetyK 0.6 starts on Careful.

Evidence

  • swift test: FTWShared 221 and FTWKit 368 tests green. New: unpricedQuartersAreStubs.
  • UI tests on the iPhone SE (3rd generation), iOS 26.5: NowFitsTests 11 of 11, PlanStripTests 3 of 3, PlanDialTests 3 of 3.
  • Pictures below, from the demo in Swedish with tomorrow's prices held back and the style on Careful.

Pictures

Now, dark and light, and at the largest text: the strip's quarters after midnight are hatched stubs.

Now with unpriced stubs

The plan view, dark and light: the dashed sun, and "FÖRSIKTIG MED PROGNOSEN" under the planned line.

The plan view with the dashed sun and the style line

🤖 Generated with Claude Code

frahlg and others added 2 commits October 14, 2026 21:39
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
For pictures of the plan's unpriced stubs and its style line.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-14T19:49:48.410814Z ca21613 PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ca21613436

ℹ️ 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".

Comment on lines +126 to +128
if let lean = styleLine {
Text(lean).foregroundStyle(Theme.ink3)
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Show the forecast style in the lanes layout too

When the user selects the supported Lanes presentation and the box reports a non-balanced planning style, this disclosure disappears because it is rendered only inside the .dial branch. The lanes branch still shows its equivalent planned-state line but never styleLine, so those users cannot see how strongly the displayed plan relies on the forecast; render the line in both layouts or move it outside the style switch.

Useful? React with 👍 / 👎.

frahlg added a commit that referenced this pull request Oct 14, 2026
…nst guessed, and the planning style as a scale (#58, #59, #60, #61)

One squash for four stacked PRs, changes 2–5 of the plan pass Fredrik approved on 14 Oct 2026 (change 1 was #57):
- #58: the planned battery level in the scrub, a dashed level line in the lanes and the dial's story (socPermille from srcfl/ftw#1630).
- #59: one honest saving under the dial, against no battery, only when the plan ends near its start level.
- #60: known against guessed: the dashed sun, hatched unpriced quarters, the style named when it is not balanced.
- #61: the two levers at the foot of the plan view, the planning style as a detented scale (Fredrik's note 21), one command on release with the receipt, and only moved quarters cross-faded.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@frahlg

frahlg commented Oct 14, 2026

Copy link
Copy Markdown
Member Author

Included in #61, merged as 36af0e6.

@frahlg frahlg closed this Oct 14, 2026
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