Repository source: docs/plans/archive/forte_board_reply_tree_step2_feature_description.md
Forte Board Reply Tree — Step 2: Feature Description
Problem
The board view hides each thread's replies behind a "Show N replies" button that fetches them over the network on click, adding an unnecessary extra step and a noticeable delay.
User Stories
As a Forte board-view reader, I want a thread's full reply tree already visible when I select it, so that I don't have to click an extra button and wait for it to load.
As a Forte board-view reader who just posted a reply, I want to land on my new reply already visible in the tree, so I don't need an extra expand step to see it.
Core Requirements
Selecting a thread on the board immediately shows its complete reply tree inline below the thread body — no button, no fetch, no collapsed state.
The board page renders each thread's full reply tree server-side up front, the same way the single-thread reader already does, rather than a reply-count summary plus an on-demand fetch.
The "Show/Hide replies" button, its lazy-load endpoint, and the client-side fetch/cache logic behind it are removed as dead code once every thread's tree is embedded up front.
Board page load stays acceptable at current data volume (513 threads, 503 replies total, one thread as high as 65) — this is a known trade-off accepted in Step 1, not something to re-litigate here, but a regression check belongs in success criteria.
The existing "new reply gets scrolled into view and lightly highlighted" behavior (
forte_board_reply) keeps working now that the tree is always present, without needing an expand step first.
Shared Component Inventory
templates/partials/paned_thread_reply_tree.php— the existing reply-tree renderer, already used by both the single-thread reader and the (soon-removed) lazy board endpoint. Reused as-is, just invoked eagerly per thread during board render instead of once per click.buildReplyTree()(Application.php) — canonical tree-building helper, already used elsewhere in Forte. Reused, called once per thread at board-render time instead of once per click./forte/threads/{id}/repliesendpoint +renderForteThreadReplies()— removed; no longer needed once every thread's tree ships with the initial board render.paned_board_reader.js'stoggleReplies()/replyCache/ reply-toggle click handling — removed as dead code; the existing highlight-and-scroll-to-new-reply logic is simplified to skip the now-nonexistent "expand first" step.
Simple User Flow
Reader opens
/forte.Reader selects a thread.
Reader immediately sees the thread body and its complete reply tree together, with no extra click or visible delay.
Success Criteria
No "Show N replies" button or collapsed-reply state remains anywhere in the board view.
Selecting any thread shows its full reply tree immediately.
Board page load time/size at current data volume (513 threads / 503 replies) stays acceptable — spot-checked, not required to match the old lazy-load page weight exactly.
The new-reply highlight-and-scroll behavior from
forte_board_replystill works correctly against the always-rendered tree.