Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions docs/fork/0012-timeline-scrolls-only-as-far-as-its-content.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# 0012: The timeline scrolls only as far as its content

- PR: [TrogonStack/t3code#21](https://github.com/TrogonStack/t3code/pull/21)
- Status: active

## What you can do now

- Drag the timeline scrollbar and land where the thumb says you will. A long
thread no longer grows an empty region below the last message that the
scrollbar still counts, so the thumb stays proportional to the conversation
instead of shrinking to a sliver.
- Keep a thread open all day without its scroll range drifting. The dead space
used to compound with every turn, several times over, until scrolling to the
bottom meant travelling multiples of the thread's real height through
nothing.
- Flick to the end on a phone and stop at the last message rather than
somewhere in the blank area past it.

## Why

The timeline is the one surface a user never leaves, and its scrollbar is how
they judge how much thread there is. When the scroll range says a thread is
eight times longer than it is, every estimate the user makes from it is wrong,
and the flick that should reach the newest message lands nowhere.

It also degraded the longer someone stayed, which is the worst shape for this
kind of bug: the threads worst affected are exactly the ones people care most
about, and closing and reopening the thread was the only way out. That is not
something we can ask of people who drive agents all day.

## Upstream considerations

This one is not going upstream, by our choice: it lives in a patch against a
third-party list dependency rather than in T3 Code's own code, so there is no
upstream T3 Code change to submit. The fix belongs to the list library, and we
are carrying it locally instead of taking on that project's release cycle.

The rebase burden is small and self-contained. It survives a sync untouched
unless the dependency version moves; a version bump means regenerating the
patch, and the affected code was unchanged in the next upstream release, so it
should reapply. Anyone bumping that dependency needs to confirm the fix is
still present rather than assume the new version carries it.
25 changes: 16 additions & 9 deletions docs/fork/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,19 @@ Each entry uses these sections:

## Ledger

| # | Divergence | PR | Status |
| ---- | ----------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ------ |
| 0003 | [Native subagent threads for Claude orchestrators](./0003-native-subagent-threads.md) | [#3](https://github.com/TrogonStack/t3code/pull/3) | active |
| 0006 | [Fork schema on its own migration ledger](./0006-fork-migration-ledger.md) | [#13](https://github.com/TrogonStack/t3code/pull/13), [#16](https://github.com/TrogonStack/t3code/pull/16) | active |
| 0007 | [API-key Codex installs are not reported as broken](./0007-codex-api-key-auth-is-supported.md) | [#15](https://github.com/TrogonStack/t3code/pull/15) | active |
| 0008 | [Drop a folder on the sidebar to add a project](./0008-drop-a-folder-to-add-a-project.md) | [#17](https://github.com/TrogonStack/t3code/pull/17) | active |
| 0009 | [Grok reports the account it is signed in as](./0009-grok-reports-its-authenticated-account.md) | [#18](https://github.com/TrogonStack/t3code/pull/18) | active |
| 0010 | [Pull request conventions of our own](./0010-fork-pull-request-conventions.md) | [#19](https://github.com/TrogonStack/t3code/pull/19) | active |
| 0011 | [Follow the background work a thread left running](./0011-follow-background-work.md) | [#20](https://github.com/TrogonStack/t3code/pull/20) | active |
- **0003** [Native subagent threads for Claude orchestrators](./0003-native-subagent-threads.md)
active, [#3](https://github.com/TrogonStack/t3code/pull/3)
- **0006** [Fork schema on its own migration ledger](./0006-fork-migration-ledger.md)
active, [#13](https://github.com/TrogonStack/t3code/pull/13), [#16](https://github.com/TrogonStack/t3code/pull/16)
- **0007** [API-key Codex installs are not reported as broken](./0007-codex-api-key-auth-is-supported.md)
active, [#15](https://github.com/TrogonStack/t3code/pull/15)
- **0008** [Drop a folder on the sidebar to add a project](./0008-drop-a-folder-to-add-a-project.md)
active, [#17](https://github.com/TrogonStack/t3code/pull/17)
- **0009** [Grok reports the account it is signed in as](./0009-grok-reports-its-authenticated-account.md)
active, [#18](https://github.com/TrogonStack/t3code/pull/18)
- **0010** [Pull request conventions of our own](./0010-fork-pull-request-conventions.md)
active, [#19](https://github.com/TrogonStack/t3code/pull/19)
- **0011** [Follow the background work a thread left running](./0011-follow-background-work.md)
active, [#20](https://github.com/TrogonStack/t3code/pull/20)
- **0012** [The timeline scrolls only as far as its content](./0012-timeline-scrolls-only-as-far-as-its-content.md)
active, [#21](https://github.com/TrogonStack/t3code/pull/21)
Loading
Loading