Lab 14 / the two surfaces that are always there
The command bar runs on all one hundred routes and is the only place a person addresses the platform in their own words. The notification centre is the only place the platform addresses them. Between them they are the whole conversation, and both had never been designed.
They share one idea, which is the same idea running through the rest of the system: show the reasoning, not just the result. The command bar echoes what it understood before it acts on it. A reminder shows the rule it fires on rather than a date somebody typed. In both cases the alternative is a box that behaves mysteriously, and mysterious is expensive when money is involved.
01 / the command bar
Six hundred and forty pixels, centred, entering at 140ms with five pixels of rise. It carries the active entity as a chip, because a search that silently spanned two sets of books would be the worst kind of quiet error.
02 / the idea that makes it work
The platform's search box is asked four completely different kinds of question, and the failure mode is a person typing a route and getting a text match on a customer called Nairobi. So the bar parses first and prints the parse back as tokens before it shows a single result. If it read you wrong, you can see it read you wrong.
A reference · one answer, no ambiguity
A route and a date · this is a live supplier search, not a text match
Plain words · everything at once, grouped and labelled
"No return" is printed as an unfilled token rather than left silent, because the difference between a one way search and a return search is thousands of dollars and the person typing did not say which they meant. Every token the parser did not find, but could have used, is shown empty and is one keystroke from being filled. A parser that only reports its successes is a parser that hides its guesses.
03 / the notification centre
A notification says something happened and you may have missed it. A reminder says something will happen and somebody asked to be told. They have different tenses, different severities and different lifespans, and putting them in one list is why notification centres get muted.
Nothing new was invented. Already broken is a solid leading edge, about to break is hatched, and unread is the paper ground rather than a dot or a bold weight, because a bold weight would fight the record names and a dot would be a third thing to learn. When a row is read it simply becomes card white, which is the quietest possible way for a state to leave.
04 / the reminders half
This is the part of the platform's doctrine that has no equivalent in a normal calendar. A person does not want to be told on 25 August. They want to be told three days before the hotel's free-cancel deadline, and if that deadline moves, the reminder moves with it. Some anchors have no date at all: "when the supplier confirmation arrives" fires on an event that may never happen.
That is the whole design. A typed date is a copy of a fact that lives somewhere else, and copies go stale silently. The builder offers the anchors the record actually has, computes the date from them, and prints the computed date underneath so nobody has to trust it blindly. The one sentence at the bottom, and it will move if the deadline does, is the entire product difference stated in nine words.
Different tenses, different lifespans, different actions. A notification is dismissed and gone; a reminder is edited, snoozed or cancelled, and it exists until its anchor resolves.
The date is always computed and always re-computed. If a deadline moves, every reminder anchored to it moves. Nothing in the platform stores a date a person typed for something the system already knows.
A notification without a reference is an anecdote. The reference is shown, in mono, and it is the link.
The queue, the attention rail and this panel share one mechanism. A person learns it once and reads it in three places.
Nineteen unread items is not information. Two things already broken is. The dot on the bell is the count of critical rows, and everything else waits quietly.
Three, then the overlay layer