Repository navigation
Upstream integration cycle: chat accessibility and compact sidebar #669
Copy link
Copy link
Closed
Description
Activity
Group A status: PR #679 opened
- Source:
6cdbf76fa4b0509913046abe6105037ded9e52bb(#11199 expose each chat message as a heading for screen readers) - PR: feat(web): expose each chat message as a heading for screen readers (#11199) #679 (branch
upstream/2026-09-19-chat-a11y, headea45ac3833) - Adaptation & Divergence:
- Rebased onto latest
origin/pylonfollowing the removal of pair/delegation in refactor: remove Pylon pair mode and thread delegation #673. MessageAuthorHeadingplaced aboveUserTimelineRow, preserving Pylon assistant branding ("Pylon").- Nested markdown headings rendered inside messages and
ProposedPlanCardoffset byheadingLevelOffset={3}viaaria-levelwith HTML tags intact.
- Rebased onto latest
- Verification:
- 111 focused unit tests passed (
ChatMarkdown.test.tsx,MessagesTimeline.test.tsx). @t3tools/webtypecheck: 0 errors.- Scoped
vp check: 0 errors. - Independent adversarial review passed and approved with no regressions.
- 111 focused unit tests passed (
- Next:
- Await CI and landing of PR feat(web): expose each chat message as a heading for screen readers (#11199) #679.
- Proceed to Group B (compact sidebar rail and thread list density modes: #11525, #9417, #11644, #11652).
- Source:
Group A landed: PR #679 merged
- PR: feat(web): expose each chat message as a heading for screen readers (#11199) #679
- Merge commit:
efff40d3c524cf628f39369b199b783edb36d566 - Status: All CI checks passed cleanly; branch deleted.
- Next: Proceeding to Group B (compact sidebar rail and thread list density modes: #11525, #9417, #11644, #11652).
Group B Progress Update
Implemented upstream commits for compact sidebar rail and compact thread list density:
- #11525: Optional compact sidebar rail (
compactSidebarEnabled, defaultfalse) - #9417: Compact thread list mode (
sidebarCompactThreadRows, defaultfalse) - #11644: Refine compact thread row badges
- #11652: Show linked PR in compact sidebar rail
- #11595: Keep sparse sidebar shelves at the bottom
Adversarial review completed with fixes applied:
- Addressed
plan-readythread status in compact row density mode to render an accessible dot/label rather than vanishing. - Excluded phantom settled markers from drag layout projection in compact rail mode.
- Added explicit
compactSidebarEnabled: falseentry toDesktopClientSettings.test.tsfixture.
PR opened: #680
Awaiting CI checks.- #11525: Optional compact sidebar rail (
- added a commit that references this issue
on Sep 20, 2026
Metadata
Metadata
Assignees
Labels
No labels
Closes the largest coherent capability gaps identified in the unreviewed backlog. Bounded at upstream
b44c1ce5d25ee0d5a5be82e380618a886c19ea96; Pylon head at open2725b650086814b55ca3a935175a71e59ac69fd7. Review cursor stays atbbedad0278bbf753503184c00e0c09a0eab6679c.These are feature adoptions, not catch-up fixes, so each group is scoped and sized before work starts.
Group A — chat message accessibility (1 source)
6cdbf76fa4b0509913046abe6105037ded9e52bbChatMarkdown.tsx,MessagesTimeline.tsx,ProposedPlanCard.tsx. Small, self-contained, and the only accessibility gap found in the backlog sweep. Highest value per line in the whole list.Group B — compact sidebar and thread list (4 sources)
ca2cc1339bbd1904b932c3a92d23a2c0ffe1d26777bca8b2d76a1f42552e5eee7d277fcb1160347adf7ccc8fd01f5d2a1d8ec21bef8f9c59398fe9137b61099886f3aac139ad43fb73873c73ba7baf4fOne coherent family: an opt-in compact rail plus a compact thread-row density mode, then two refinements. Both add a field to
packages/contracts/src/settings.ts, so contract additivity and version-skew behavior need explicit checks. Must preserve Pylon's sidebar behavior, including delegated-thread nesting and any archived-thread handling.Sequencing note: Group B touches
Sidebar.tsx/Sidebar.logic.ts, which cycle #667's nav/diff work is editing right now. Group B does not start until that branch lands, to avoid two writers on the same files.Deferred to their own cycles — too large to fold in
d359e94cabca4722029359c77d60cb6d13da1e59pnpm-lock.yamlchange. New runtime dependencies; the lockfile must be regenerated from Pylon's own inputs, never copied. Deserves a dedicated cycle.6fd68f5c3e7c81a9650ba36df32f2241912e00bafjandteaBoundaries to preserve
Pylon's sidebar and thread-list behavior including delegated-thread nesting, environment-scoped caches, routing and panel-choice semantics, contract/migration numbering and version-skew behavior, and Pylon branding. Settings additions must be optional and default to Pylon's current behavior so existing users see no change until they opt in.
Review method
Adversarial review on every group by an independent reviewer that did not write the code, then the parent re-runs all checks on the final head. Implementation claims are not accepted as verification.
Verification plan
Focused web tests for each changed area,
@t3tools/weband@t3tools/contractstypechecks, scoped lint, and green CI on each final PR head. Group A's change is semantic markup — its test is the assertion that messages expose heading roles at the right level, not a screenshot.