Commit e4d68b4
merge: upstream/main, adopt upstream attention indicators, drop our unread
Pulls in 24 upstream commits including session list status indicators
(attention + scheduled), lightbox image preview, agent flavor icons in
session header, Claude effort options, contextWindow propagation,
permissionMode persistence across hub restart, voice picker overhaul,
unique assistant-ui message IDs, and a heap of smaller fixes.
Upstream's PR tiann#699 (session-list status indicators) overlaps with the
unread badge we shipped in d530ee2. Per user direction, dropped our
implementation in favor of upstream's classifySessionAttention (which
distinguishes permission > input > background > unread per session)
plus the localStorage-backed sessionLastSeen tracker. Our cross-device
"unreadAt" metadata field, hub markSessionUnread/Read, /mark-read
route, NotificationHub mark-unread hooks, and SessionChat auto-clear
effect are all removed.
Kept from the fork:
- Recent (12h) section + cross-device pin (server-side metadata.pinnedAt)
- YOLO default for cursor / opencode permission mode
- Continue + auto-discovery fallback for resume in spawnSession
- usage/accountStatus on Session, UsageBar in settings, claude-mem
auto-status, Claude 4.6/4.7 1M presets, etc.
Conflict resolutions of note:
- SessionList.tsx: combined our Recent+Pin rendering with upstream's
SessionAttentionIndicator; SessionItem now accepts both
isPinned/onTogglePin and showDetailedStatus.
- syncEngine.spawnSession: kept our useContinue + listAgentSessions
fallback, took upstream's preferredPermissionMode formula and
threaded it through the spawn call.
- applySessionConfig: kept our legacy `applied.model` backfill
BEFORE upstream's strict requested-key check.
- StatusBar: kept our usage/accountStatus block, took upstream's
opencode reasoning label extension.
- SessionHeader: took upstream's AgentFlavorIcon, kept our
getAgentDisplayName for the label.
- UserMessage: kept our timestamp / queued / metadata-toggle bubble,
replaced upstream's simpler bubble; reintroduced
toggleMetadata/onMetadataKeyDown callbacks that were stale in the
fork commit.
- settings/index.tsx: kept our UsageBar/formatResetTime + upstream's
PlayIcon/StopIcon, deduped useAppContext import and `api`
destructure.
- MessageAttachments: kept upstream's ImagePreview lightbox but with
overflow-clip (so trackpad scroll doesn't latch on the image).
- permissionModePersistence test mock: extended spawnSession mock
signature with _sandbox/_continueLatest so the new 13th-arg
permissionMode is captured.
- modelOptions.test: expected arrays now include our claude-opus-4-6
and 4-7 1M presets.
Build 48 -> 49.
via [HAPI](https://hapi.run)
Co-Authored-By: HAPI <noreply@hapi.run>171 files changed
Lines changed: 5982 additions & 1140 deletions
File tree
- .github/pr-assets
- cli/src
- agent
- backends/acp
- claude
- sdk
- utils
- codex
- utils
- commands
- cursor
- gemini
- kimi
- modules/common
- handlers
- opencode
- utils
- runner
- utils
- docs/guide
- hub/src
- notifications
- sse
- store
- sync
- web/routes
- web
- src
- api
- chat
- components
- AssistantChat
- messages
- NewSession
- ToolCard
- hooks
- mutations
- queries
- lib
- locales
- realtime
- hooks
- routes
- sessions
- settings
- types
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Loading
Loading
Loading
Loading
Loading
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
| 14 | + | |
21 | 15 | | |
22 | 16 | | |
23 | 17 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
155 | 155 | | |
156 | 156 | | |
157 | 157 | | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
158 | 197 | | |
159 | 198 | | |
160 | 199 | | |
| |||
213 | 252 | | |
214 | 253 | | |
215 | 254 | | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
216 | 316 | | |
217 | 317 | | |
218 | 318 | | |
| |||
284 | 384 | | |
285 | 385 | | |
286 | 386 | | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
287 | 448 | | |
0 commit comments