Skip to content

Tasks side pane: restore tree rail lines (├/└/│) so containment reads #1660

Description

@santoshkumarradha

What

The tasks side column draws no rail lines. Children indent two cells under their parent (strings.Repeat(" ", depth), internal/tui3/planrail.go:234) with no ├/└ connector and no │ stem, so on a multi-level run the family shape does not read, and a child's title floats ~5 cells right of its parent's title with nothing anchoring it.

The connectors were removed in #1494 (e94bb4f6a), which replaced stem tracking (railEntryRows with stems []bool) with bare indentation — the file's own comment says the column's "forest is gone".

Wanted

Restore the tree rails in the side column, matching the shape the manual and the plandb CLI tree (internal/plandb/cli.go:1462) already draw:

  • a child row hangs off ├ (or └ when it is the last child), joined to its parent;
  • intermediate rows of a multi-level family carry a │ stem;
  • titles align under the connector instead of floating.

Constraints

  • Rails follow containment only. A dependency never re-parents a row (the law in internal/tui3/c246_tree_test.go:13); blocked rows keep their queued · waits: <task> wording.
  • The base 2-space row prefix (internal/tui3/task.go:4267) and the mark/spinner glyph stay; the connector lives in the lead, not in the row text.

Acceptance

  • A two-level family in the pane draws └/├ connectors and │ stems for middle rows.
  • No dependency-based re-parenting; waits: wording unchanged.
  • go test ./internal/tui3/... green with exact-text tests updated to the rail shape.

—

Drafted with CodeAF · reviewed and owned by the author

Activity

  1. added
    featureWork that adds a capability; developers break it into tasks
    area:chatThe v3 surface a person sits in front of (internal/tui3)
    on Sep 28, 2026
  2. santoshkumarradha commented on Sep 28, 2026

    @santoshkumarradha
    MemberAuthor

    Scope addition (owner request): bring back the task's number on the side rows

    Per the owner's report, the pane's rows previously showed the task's number, which let a person identify which task a row was — which one of several similarly named tasks, and what its record maps to. Today the rows show only the mark glyph, the title, the program spelling and the age — no number (app.railEntryRow, internal/tui3/task.go).

    Add it back as part of this same rail work:

    • a row carries its task's number (e.g. #123) so a person can tell rows apart and map a row to its task record at a glance;
    • the number lives inside the row text like any other spelling — the rail shape (connectors/stems in the lead) is not compromised by it;
    • no re-parenting change: the number follows containment, never dependency (the standing law).

    —

    Drafted with CodeAF · reviewed and owned by the author

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

    area:chatThe v3 surface a person sits in front of (internal/tui3)featureWork that adds a capability; developers break it into tasks

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions