Implements Phases 1-8 of the TFTSR implementation plan. Rust backend (Tauri 2.x, src-tauri/): - Multi-provider AI: OpenAI-compatible, Anthropic, Gemini, Mistral, Ollama - PII detection engine: 11 regex patterns with overlap resolution - SQLCipher AES-256 encrypted database with 10 versioned migrations - 28 Tauri IPC commands for triage, analysis, document, and system ops - Ollama: hardware probe, model recommendations, pull/delete with events - RCA and blameless post-mortem Markdown document generators - PDF export via printpdf - Audit log: SHA-256 hash of every external data send - Integration stubs for Confluence, ServiceNow, Azure DevOps (v0.2) Frontend (React 18 + TypeScript + Vite, src/): - 9 pages: full triage workflow NewIssue→LogUpload→Triage→Resolution→RCA→Postmortem→History+Settings - 7 components: ChatWindow, TriageProgress, PiiDiffViewer, DocEditor, HardwareReport, ModelSelector, UI primitives - 3 Zustand stores: session, settings (persisted), history - Type-safe tauriCommands.ts matching Rust backend types exactly - 8 IT domain system prompts (Linux, Windows, Network, K8s, DB, Virt, HW, Obs) DevOps: - .woodpecker/test.yml: rustfmt, clippy, cargo test, tsc, vitest on every push - .woodpecker/release.yml: linux/amd64 + linux/arm64 builds, Gogs release upload Verified: - cargo check: zero errors - tsc --noEmit: zero errors - vitest run: 13/13 unit tests passing Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
114 lines
1.3 KiB
JavaScript
114 lines
1.3 KiB
JavaScript
/**
|
||
* List of legacy HTML named character references that don’t need a trailing semicolon.
|
||
*
|
||
* @type {Array<string>}
|
||
*/
|
||
export const characterEntitiesLegacy = [
|
||
'AElig',
|
||
'AMP',
|
||
'Aacute',
|
||
'Acirc',
|
||
'Agrave',
|
||
'Aring',
|
||
'Atilde',
|
||
'Auml',
|
||
'COPY',
|
||
'Ccedil',
|
||
'ETH',
|
||
'Eacute',
|
||
'Ecirc',
|
||
'Egrave',
|
||
'Euml',
|
||
'GT',
|
||
'Iacute',
|
||
'Icirc',
|
||
'Igrave',
|
||
'Iuml',
|
||
'LT',
|
||
'Ntilde',
|
||
'Oacute',
|
||
'Ocirc',
|
||
'Ograve',
|
||
'Oslash',
|
||
'Otilde',
|
||
'Ouml',
|
||
'QUOT',
|
||
'REG',
|
||
'THORN',
|
||
'Uacute',
|
||
'Ucirc',
|
||
'Ugrave',
|
||
'Uuml',
|
||
'Yacute',
|
||
'aacute',
|
||
'acirc',
|
||
'acute',
|
||
'aelig',
|
||
'agrave',
|
||
'amp',
|
||
'aring',
|
||
'atilde',
|
||
'auml',
|
||
'brvbar',
|
||
'ccedil',
|
||
'cedil',
|
||
'cent',
|
||
'copy',
|
||
'curren',
|
||
'deg',
|
||
'divide',
|
||
'eacute',
|
||
'ecirc',
|
||
'egrave',
|
||
'eth',
|
||
'euml',
|
||
'frac12',
|
||
'frac14',
|
||
'frac34',
|
||
'gt',
|
||
'iacute',
|
||
'icirc',
|
||
'iexcl',
|
||
'igrave',
|
||
'iquest',
|
||
'iuml',
|
||
'laquo',
|
||
'lt',
|
||
'macr',
|
||
'micro',
|
||
'middot',
|
||
'nbsp',
|
||
'not',
|
||
'ntilde',
|
||
'oacute',
|
||
'ocirc',
|
||
'ograve',
|
||
'ordf',
|
||
'ordm',
|
||
'oslash',
|
||
'otilde',
|
||
'ouml',
|
||
'para',
|
||
'plusmn',
|
||
'pound',
|
||
'quot',
|
||
'raquo',
|
||
'reg',
|
||
'sect',
|
||
'shy',
|
||
'sup1',
|
||
'sup2',
|
||
'sup3',
|
||
'szlig',
|
||
'thorn',
|
||
'times',
|
||
'uacute',
|
||
'ucirc',
|
||
'ugrave',
|
||
'uml',
|
||
'uuml',
|
||
'yacute',
|
||
'yen',
|
||
'yuml'
|
||
]
|