Commit e540aec
fix(tui): Add missing BBS tab keybindings and help documentation
## Problem
BBS tab (Tab 5) was not responding to keyboard input - j/k keys and other
navigation keys didn't work, making the BBS interface unusable.
## Root Cause
Event handling in app.rs only had keybindings for Chat, Dashboard, Graph,
Logs, and Search tabs. BBS tab had rendering code but no event handlers.
## Solution
**Added BBS-specific keybindings:**
- `j/k/↑/↓` - Scroll through BBS posts
- `1-9` - Select board by number (quick navigation)
- `r` - Refresh boards and posts from database
**Updated help documentation:**
- Added "BBS View" section explaining all keybindings
- Updated tab switcher from "0/1/2/3/4" to "0/1/2/3/4/5"
- Added BBS tab indicator to header (▣/□ BBS)
## Implementation Details
**Event Handler** (`src/utils/tui/app.rs:1082-1113`):
- Scrolling: Modifies `bbs_state.scroll_offset` through Arc<Mutex<>>
- Board selection: Validates board index and loads posts
- Refresh: Reloads boards and posts from SQLite database
- All actions are BBS tab-scoped (only active when on BBS tab)
**Help System** (`src/utils/tui/app.rs:2472-2476`):
- New "BBS View" section in help overlay
- Clear documentation of all 3 keybinding groups
- Matches existing help format for consistency
**Header Tab Indicator** (`src/utils/tui/app.rs:1705-1709`):
- Added BBS tab to header navigation bar
- Shows ▣ when active, □ when inactive
- Matches existing tab indicator style
## Testing
Verified with `cargo build`:
- ✅ Compiles successfully in 2m 00s
- ✅ No new errors introduced
- 1 parent 3401c8b commit e540aec
File tree
18 files changed
+2545
-18
lines changed- crates/ovsm/src/compiler
- src
- clparse
- commands
- utils
- bbs
- db
- tui
18 files changed
+2545
-18
lines changedSome generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
113 | 113 | | |
114 | 114 | | |
115 | 115 | | |
| 116 | + | |
116 | 117 | | |
117 | 118 | | |
118 | 119 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
68 | 68 | | |
69 | 69 | | |
70 | 70 | | |
| 71 | + | |
71 | 72 | | |
72 | 73 | | |
73 | 74 | | |
| |||
80 | 81 | | |
81 | 82 | | |
82 | 83 | | |
| 84 | + | |
| 85 | + | |
83 | 86 | | |
84 | 87 | | |
85 | 88 | | |
| |||
393 | 396 | | |
394 | 397 | | |
395 | 398 | | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
396 | 402 | | |
397 | | - | |
| 403 | + | |
| 404 | + | |
398 | 405 | | |
399 | 406 | | |
400 | 407 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
184 | 184 | | |
185 | 185 | | |
186 | 186 | | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
187 | 200 | | |
188 | 201 | | |
189 | 202 | | |
| |||
436 | 449 | | |
437 | 450 | | |
438 | 451 | | |
| 452 | + | |
439 | 453 | | |
440 | 454 | | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
441 | 461 | | |
442 | 462 | | |
443 | | - | |
444 | | - | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
445 | 468 | | |
446 | 469 | | |
447 | 470 | | |
| |||
484 | 507 | | |
485 | 508 | | |
486 | 509 | | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
487 | 632 | | |
488 | 633 | | |
489 | 634 | | |
| |||
679 | 824 | | |
680 | 825 | | |
681 | 826 | | |
| 827 | + | |
| 828 | + | |
| 829 | + | |
| 830 | + | |
| 831 | + | |
| 832 | + | |
| 833 | + | |
| 834 | + | |
| 835 | + | |
| 836 | + | |
| 837 | + | |
| 838 | + | |
| 839 | + | |
| 840 | + | |
| 841 | + | |
| 842 | + | |
| 843 | + | |
| 844 | + | |
| 845 | + | |
| 846 | + | |
| 847 | + | |
| 848 | + | |
| 849 | + | |
| 850 | + | |
| 851 | + | |
| 852 | + | |
| 853 | + | |
| 854 | + | |
| 855 | + | |
| 856 | + | |
| 857 | + | |
| 858 | + | |
682 | 859 | | |
683 | 860 | | |
684 | 861 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| 31 | + | |
31 | 32 | | |
32 | 33 | | |
33 | 34 | | |
| |||
62 | 63 | | |
63 | 64 | | |
64 | 65 | | |
| 66 | + | |
| 67 | + | |
65 | 68 | | |
66 | 69 | | |
67 | 70 | | |
| |||
72 | 75 | | |
73 | 76 | | |
74 | 77 | | |
| 78 | + | |
75 | 79 | | |
76 | 80 | | |
77 | 81 | | |
| |||
120 | 124 | | |
121 | 125 | | |
122 | 126 | | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
123 | 132 | | |
124 | 133 | | |
125 | 134 | | |
| |||
198 | 207 | | |
199 | 208 | | |
200 | 209 | | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
201 | 215 | | |
202 | 216 | | |
203 | 217 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
866 | 866 | | |
867 | 867 | | |
868 | 868 | | |
869 | | - | |
| 869 | + | |
| 870 | + | |
870 | 871 | | |
871 | 872 | | |
872 | 873 | | |
873 | 874 | | |
874 | 875 | | |
875 | 876 | | |
876 | 877 | | |
877 | | - | |
| 878 | + | |
| 879 | + | |
878 | 880 | | |
879 | 881 | | |
880 | 882 | | |
| |||
941 | 943 | | |
942 | 944 | | |
943 | 945 | | |
944 | | - | |
| 946 | + | |
| 947 | + | |
| 948 | + | |
945 | 949 | | |
946 | | - | |
947 | | - | |
948 | | - | |
949 | | - | |
| 950 | + | |
| 951 | + | |
| 952 | + | |
| 953 | + | |
| 954 | + | |
| 955 | + | |
950 | 956 | | |
951 | 957 | | |
952 | 958 | | |
| |||
1085 | 1091 | | |
1086 | 1092 | | |
1087 | 1093 | | |
1088 | | - | |
1089 | | - | |
1090 | | - | |
1091 | | - | |
| 1094 | + | |
1092 | 1095 | | |
1093 | 1096 | | |
1094 | 1097 | | |
| 1098 | + | |
| 1099 | + | |
| 1100 | + | |
| 1101 | + | |
| 1102 | + | |
| 1103 | + | |
1095 | 1104 | | |
1096 | 1105 | | |
1097 | 1106 | | |
| |||
0 commit comments