62d1bdc462
- Add TerminalSessionTabs component with status dots, rename, close, max-5 limit - Add 7 component tests for tab rendering, selection, close, rename - TerminalComponent: sessionId prop, forwardRef with fit() method - TerminalPage: multi-session orchestration, tab switching, auto-create default - Fullscreen mode: Alt+Shift+F toggle, auto-hide tabs, Esc exit - Keyboard shortcuts: Alt+Shift+N/W/ArrowLeft/ArrowRight/R - Add CSS for tabs, fullscreen, mobile responsive - Update useTerminalSessions hook for session CRUD - terminal_manager.py: lookup by internal session_id fallback Quality gates: tsc --noEmit clean, vitest (7/7 new tests passed), pytest (182 passed)
36 lines
1.4 KiB
JSON
36 lines
1.4 KiB
JSON
{
|
|
"version": "v2",
|
|
"timestamp": 1779892231625,
|
|
"ruleHash": "0a2423849fae7580",
|
|
"queries": [
|
|
{
|
|
"id": "dangerously-set-inner-html",
|
|
"name": "Dangerously Set Inner HTML",
|
|
"severity": "error",
|
|
"language": "tsx",
|
|
"message": "dangerouslySetInnerHTML — XSS risk, sanitize user input",
|
|
"query": " (jsx_attribute\n (property_identifier) @ATTR\n (#match? @ATTR \"dangerouslySetInnerHTML\"))",
|
|
"metavars": [
|
|
"ATTR"
|
|
],
|
|
"defect_class": "injection",
|
|
"inline_tier": "blocking",
|
|
"filePath": "/home/alex/.npm-global/lib/node_modules/pi-lens/rules/tree-sitter-queries/tsx/dangerously-set-inner-html.yml"
|
|
},
|
|
{
|
|
"id": "no-nested-links",
|
|
"name": "Nested anchor tags",
|
|
"severity": "error",
|
|
"language": "tsx",
|
|
"message": "Nested <a> tags are invalid HTML and cause unexpected behavior",
|
|
"query": " (jsx_element\n open_tag: (jsx_opening_element\n (identifier) @OUTER\n (#eq? @OUTER \"a\"))\n (jsx_element\n open_tag: (jsx_opening_element\n (identifier) @INNER\n (#eq? @INNER \"a\"))))",
|
|
"metavars": [
|
|
"OUTER",
|
|
"INNER"
|
|
],
|
|
"defect_class": "correctness",
|
|
"inline_tier": "blocking",
|
|
"filePath": "/home/alex/.npm-global/lib/node_modules/pi-lens/rules/tree-sitter-queries/tsx/no-nested-links.yml"
|
|
}
|
|
]
|
|
} |