Commit 0dc68a5
authored
Fix home tutorial interaction isolation and recovery (#1160)
* Fix stalled text sessions after tutorial timeout
Release the start-session guard when an inactive session is ended by an external timeout, while preserving the internal cleanup path that keeps the guard closed during start_session handoff.
Clear stale pending input before releasing the guard so a previous inactive cleanup cannot erase input cached by a new session attempt.
Add unit coverage for frontend timeout recovery, internal cleanup guard preservation, and the pending-input race.
* fix(tutorial): isolate home guide interactions
Add a unified home tutorial interaction lock and wire it through homepage send, image import, screenshot, paste, embedded React composer, and greeting checks. Add backend greeting_check TTL guard and tests so tutorial blocking does not affect normal chat/session actions.
* fix(tutorial): close manually opened plugin guide window
Treat the plugin dashboard opened by the highlighted manual fallback target as owned by the current tutorial step, while preserving user-owned pre-existing dashboard windows.
* docs(tutorial): update home guide interaction notes
Refresh the Yui guide reference with the current interaction lock, composer disable, greeting guard, cleanup, and verification expectations.
* fix(tutorial): address home guide lock review
Close composer menus and attachment removal while disabled, keep tutorial lock restoration in sync with underlying button state, clean up guard test state, and clarify guide docs.
* fix(tutorial): close guide lock race gaps
Re-check the home tutorial lock when image files are selected and before multi-window screenshot proxy requests. Trim the composer disable effect dependencies to the values it actually uses.
* fix(tutorial): add locked toast translations
Add tutorial.homeInteractionLocked to all locale files so the home tutorial lock toast resolves without falling back.1 parent 9e6a543 commit 0dc68a5
21 files changed
Lines changed: 549 additions & 31 deletions
File tree
- docs/design
- frontend/react-neko-chat/src
- main_logic
- main_routers
- static
- locales
- tests/unit
Lines changed: 57 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| 15 | + | |
15 | 16 | | |
16 | 17 | | |
17 | 18 | | |
| |||
26 | 27 | | |
27 | 28 | | |
28 | 29 | | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
29 | 33 | | |
30 | 34 | | |
31 | 35 | | |
| |||
37 | 41 | | |
38 | 42 | | |
39 | 43 | | |
40 | | - | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
41 | 50 | | |
42 | 51 | | |
43 | 52 | | |
| |||
57 | 66 | | |
58 | 67 | | |
59 | 68 | | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
60 | 82 | | |
61 | 83 | | |
62 | 84 | | |
| |||
110 | 132 | | |
111 | 133 | | |
112 | 134 | | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
113 | 147 | | |
114 | 148 | | |
115 | 149 | | |
| |||
244 | 278 | | |
245 | 279 | | |
246 | 280 | | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
247 | 284 | | |
248 | 285 | | |
249 | 286 | | |
| |||
259 | 296 | | |
260 | 297 | | |
261 | 298 | | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
262 | 303 | | |
263 | 304 | | |
264 | 305 | | |
| |||
272 | 313 | | |
273 | 314 | | |
274 | 315 | | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
275 | 321 | | |
276 | 322 | | |
277 | 323 | | |
278 | | - | |
| 324 | + | |
279 | 325 | | |
280 | 326 | | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
281 | 331 | | |
282 | 332 | | |
283 | | - | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
284 | 337 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
69 | 69 | | |
70 | 70 | | |
71 | 71 | | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
72 | 85 | | |
73 | 86 | | |
74 | 87 | | |
| |||
118 | 131 | | |
119 | 132 | | |
120 | 133 | | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
121 | 154 | | |
122 | 155 | | |
123 | 156 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
554 | 554 | | |
555 | 555 | | |
556 | 556 | | |
| 557 | + | |
557 | 558 | | |
558 | 559 | | |
559 | 560 | | |
| |||
645 | 646 | | |
646 | 647 | | |
647 | 648 | | |
648 | | - | |
| 649 | + | |
649 | 650 | | |
650 | 651 | | |
651 | 652 | | |
| |||
1394 | 1395 | | |
1395 | 1396 | | |
1396 | 1397 | | |
1397 | | - | |
| 1398 | + | |
1398 | 1399 | | |
1399 | 1400 | | |
1400 | | - | |
| 1401 | + | |
1401 | 1402 | | |
1402 | 1403 | | |
1403 | 1404 | | |
| |||
1412 | 1413 | | |
1413 | 1414 | | |
1414 | 1415 | | |
| 1416 | + | |
1415 | 1417 | | |
1416 | 1418 | | |
1417 | 1419 | | |
| |||
1433 | 1435 | | |
1434 | 1436 | | |
1435 | 1437 | | |
| 1438 | + | |
1436 | 1439 | | |
1437 | 1440 | | |
1438 | 1441 | | |
| |||
1445 | 1448 | | |
1446 | 1449 | | |
1447 | 1450 | | |
| 1451 | + | |
1448 | 1452 | | |
1449 | 1453 | | |
1450 | 1454 | | |
| |||
1458 | 1462 | | |
1459 | 1463 | | |
1460 | 1464 | | |
| 1465 | + | |
1461 | 1466 | | |
1462 | 1467 | | |
1463 | 1468 | | |
| |||
1473 | 1478 | | |
1474 | 1479 | | |
1475 | 1480 | | |
| 1481 | + | |
1476 | 1482 | | |
1477 | 1483 | | |
1478 | 1484 | | |
| |||
1496 | 1502 | | |
1497 | 1503 | | |
1498 | 1504 | | |
| 1505 | + | |
1499 | 1506 | | |
1500 | 1507 | | |
1501 | 1508 | | |
| |||
1527 | 1534 | | |
1528 | 1535 | | |
1529 | 1536 | | |
| 1537 | + | |
1530 | 1538 | | |
1531 | 1539 | | |
1532 | 1540 | | |
| |||
1705 | 1713 | | |
1706 | 1714 | | |
1707 | 1715 | | |
1708 | | - | |
| 1716 | + | |
| 1717 | + | |
| 1718 | + | |
| 1719 | + | |
| 1720 | + | |
| 1721 | + | |
| 1722 | + | |
1709 | 1723 | | |
1710 | 1724 | | |
1711 | 1725 | | |
| |||
1724 | 1738 | | |
1725 | 1739 | | |
1726 | 1740 | | |
| 1741 | + | |
| 1742 | + | |
1727 | 1743 | | |
1728 | 1744 | | |
1729 | 1745 | | |
| |||
1755 | 1771 | | |
1756 | 1772 | | |
1757 | 1773 | | |
1758 | | - | |
| 1774 | + | |
1759 | 1775 | | |
1760 | 1776 | | |
1761 | 1777 | | |
| |||
1813 | 1829 | | |
1814 | 1830 | | |
1815 | 1831 | | |
| 1832 | + | |
1816 | 1833 | | |
1817 | 1834 | | |
1818 | 1835 | | |
| |||
1838 | 1855 | | |
1839 | 1856 | | |
1840 | 1857 | | |
| 1858 | + | |
1841 | 1859 | | |
1842 | 1860 | | |
1843 | 1861 | | |
| |||
1848 | 1866 | | |
1849 | 1867 | | |
1850 | 1868 | | |
| 1869 | + | |
1851 | 1870 | | |
1852 | 1871 | | |
1853 | 1872 | | |
| |||
1887 | 1906 | | |
1888 | 1907 | | |
1889 | 1908 | | |
| 1909 | + | |
1890 | 1910 | | |
1891 | 1911 | | |
1892 | 1912 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
197 | 197 | | |
198 | 198 | | |
199 | 199 | | |
| 200 | + | |
200 | 201 | | |
201 | 202 | | |
202 | 203 | | |
| |||
0 commit comments