Skip to content

Thread lifecycle: pinned threads and manual arrangement (B2) #528

Description

@Tryanks

Summary

Pinned threads and manual arrangement, following T3 Code's current code. Phase B2 of #535. Depends on #526.

Spec

  • SessionMeta.pinned_at and pin_order: Option<String>; active_order: Option<String> for manual arrangement of the active list. Order keys are fractional base-26 strings (lexicographic, arbitrary extension, no trailing a), generated by the ordering code in core; the host stores them. Normal moves write only the moved thread's key; corrupt or reversed bounds spread fresh keys while preserving hidden rows' positions.
  • Pinning a settled thread promotes it to Active (no unsettled_at stamp). Unpin does not clear Active. Settling unpins and clears the active order. Pinning does not stamp unsettled_at.
  • Pinned threads are exempt from automatic settlement, both inactivity and PR routes. (Upstream's user doc says otherwise; its code and test exempt. Code wins.) Manual settle still works and unpins.
  • Sidebar: pinned section first, sorted by key then newest-created for keyless rows; drag within pinned or active to reorder, drag between sections to pin / unpin / settle / un-settle, with the action shown while dragging; phone: Arrange threads with handles, plus Move up / Move down in the thread menu. New threads appear above the arranged active rows. Activity never reorders.
  • Unpin shows the shared undo toast and restores the former key.
  • Protocol: PinSession {session_id, order_key?}, UnpinSession, ReorderPinned {order_key}, ReorderActive {order_key}.

Reference

T3 Code 83a82a46b: Orchestrator.ts pin/unpin/reorder (:2822–2867), ThreadSettlementService.ts:144 (pin blocker), ThreadSettlementService.test.ts:106–126, packages/client-runtime/src/state/threadSort.ts, packages/contracts/src/orchestrationV2.ts:2690.

Activity

  1. changed the title [-]Thread lifecycle: pinned threads[/-] [+]Thread lifecycle: pinned threads and manual arrangement (B2)[/+] on Oct 8, 2026
  2. added a commit that references this issue on Oct 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions