Announced pages: event windows, header announcements, summary tasks
A question may carry event: {starts, duration, place}. While the
window is open the page is announced in a strip at the top of every
header (name, when, 'in 3 days'), soonest first, and kept out of the
footer nav; when it closes the page becomes a followup - only a
visitor carrying an answer chain still sees it.
announce.rs keeps one record per event page in the runtime-owned
portal_events bucket (built-in state graph: announced ->
awaiting_summary -> summarized, content may override) and, on a
one-minute idempotent sweep, moves ended windows to awaiting_summary,
publishing the transition on portal.answers.submitted as 'Summary
due' - the post-what-happened task a review desk picks up. Lint
warns when event pages exist but nothing reads portal_events.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
47d7f9d2c3
commit
0154f6c8c0
@@ -206,6 +206,56 @@ main.not-found {
|
||||
min-height: 55svh;
|
||||
}
|
||||
|
||||
/* announcements - live event pages, a strip above the hero copy.
|
||||
Header, not footer: the one place a page claims attention before
|
||||
the question is asked. */
|
||||
.announce {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
gap: 0.6rem 1.2rem;
|
||||
margin: -2rem 0 0.5rem;
|
||||
font-size: 0.88rem;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.announce-item {
|
||||
display: inline-flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: baseline;
|
||||
gap: 0.35rem 0.7rem;
|
||||
padding: 0.45rem 0.9rem;
|
||||
border: 0.06rem solid var(--line);
|
||||
border-left: 0.2rem solid var(--accent);
|
||||
border-radius: 0.3rem;
|
||||
color: var(--ink);
|
||||
text-decoration: none;
|
||||
background: var(--paper);
|
||||
transition: border-color 120ms;
|
||||
}
|
||||
|
||||
.announce-item:hover,
|
||||
.announce-item[aria-current="page"] {
|
||||
border-color: var(--accent);
|
||||
}
|
||||
|
||||
.announce-name {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.announce-when {
|
||||
color: var(--ink-dim);
|
||||
}
|
||||
|
||||
.announce-relative {
|
||||
color: var(--accent);
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.06em;
|
||||
font-size: 0.72rem;
|
||||
}
|
||||
|
||||
/* alternatives */
|
||||
|
||||
/* position + z-index on these three: everything that scrolls over the
|
||||
|
||||
Reference in New Issue
Block a user