tools: 发现阶段自动跳过跨 tailnet 共享节点
tools: mesh 带宽统一使用 Mb/s 单位(含 code-review 缺陷修复)
tools: mesh 报告列出各节点对 exit node 的使用情况
tools: 将当前执行节点纳入 mesh 测速
tools: 使 mesh 测速脚本支持本地 status、config 收编节点、无参数显示 help
v4.10: remove LLM enhancement — batch-enhance, callLLM, enhanceManPage
feat: add --help / -h to tailscale-mesh-bench.sh
feat: Tailscale mesh iperf3 bandwidth benchmark script
fix: emoji cache entries never expire (7d TTL caused mass data loss)
fix: PageCache::set() guards against overwriting valid content with empty not_found
feat: generate compressed sitemap during reindex
Docs: CSP nonce + strict-dynamic strategy (#158) + v4.9 PLANDOC entry
fix: --status query excludes NOT_FOUND entries from emoji counts
fix: cache NOT_FOUND on LLM failure to prevent repeated retries
fix: preg_match_all called before empty() check in splitHtmlIntoSections
fix: man page heading detection in splitHtmlIntoSections
fix: wire chunked enhancement into batch-enhance.php HTML path
feat: chunked LLM enhancement for large man pages (>200KB)
docs: add architectural paradox — data sources are already CLI tools
docs: strategic review — phpMan value in the LLM era (GEO/MCP/SEO analysis)
fix: deterministic PID file naming for multi-mode parallel batch-enhance
docs: add batch-enhance.php CLI reference with --status to §2.12.1
docs: extract LLM enhancement + GA analytics to external projects
fix: deploy src/ before phpMan.php to avoid transient 500 errors
Merge SourceForge upstream (AdSense) + Perl module fix
fix: allow valid Perl modules with multiple :: in 403 guard
Add /status JSON endpoint for batch enhance process monitoring
fix: prevent PHP default_socket_timeout from preempting CURLOPT_TIMEOUT
Increase LLM timeout: primary 120→600s, fallback default 60→300s
Add LLM gateway failure analysis report
Add runtime process status to --status output
Restore PATH_INFO guard (ec489ee, lost in code split) + colons enhancement
Add log-analyze.sh — web access log analysis tool
Add URL attack guard: reject malformed paths with protocol-prefix traps
Add --restart option to batch-enhance.php
v4.9.26: fix GIT_DESCRIBE guard in showFooter + add AdSense support
fix: allow valid Perl modules with multiple :: in 403 guard
Add /status JSON endpoint for batch enhance process monitoring
fix: prevent PHP default_socket_timeout from preempting CURLOPT_TIMEOUT
Increase LLM timeout: primary 120→600s, fallback default 60→300s
Add LLM gateway failure analysis report
Add runtime process status to --status output
Restore PATH_INFO guard (ec489ee, lost in code split) + colons enhancement
Add log-analyze.sh — web access log analysis tool
Add URL attack guard: reject malformed paths with protocol-prefix traps
Add --restart option to batch-enhance.php
v4.9.26: fix GIT_DESCRIBE guard in showFooter + add AdSense support
Raise maxConsecutiveFailures 3→10 to reduce man batch abort rate
Add unit tests: callLLM/callLLMEndpoint semantics + cleanEmojiHtml XSS + tldr guard
v4.9.25: fix FTS5 duplicate entries — DELETE FROM search_fts instead of DROP+CREATE/RENAME
v4.9.24: fix rebuildSearchIndex cache cleanup — DELETE WHERE mode='search', not format='search'
v4.9.24: fix rebuildSearchIndex cache cleanup — DELETE WHERE mode='search', not format='search'
v4.9.23: fix rebuildSearchIndex — only delete search caches, not all HTML page caches
Fix undefined GIT_DESCRIBE in tldr.php:85 (CLI batch crash)
v4.9.22: code review fixes — <u> revert, cleanup patterns, dead code removal, ETag logging, amp; consolidation, X-Forwarded-Proto
Add start-enhance-all.sh — two-phase batch runner
v4.9.21: configurable --rate-limit, default 120→60s
v4.9.20: tool detection at deploy, --cache-only mode, fallback-2 max_tokens fix
v4.9.19: add id to submit button for Chrome form field warning
v4.9.18: single-row form layout, dark mode field contrast, font size bump, tldr UA version fix
v4.9.17: code review cleanup — dead code removal, abort fix, WAL safety
v4.9.16: desktop form single-row layout (search + modes inline)
v4.9.15: two-row form layout — search+button row, radios row below
docs: add v4.9.11–v4.9.14 changelog entries
v4.9.14: fix --status man emoji count — :mode was never bound
v4.9.14: fix --status man emoji count — :mode was never bound
v4.9.13: fix --status showing 0 for man — WAL checkpoint before read
v4.9.12: emoji_html LLM empty no longer aborts batch
v4.9.11: fix callLLM() non-retryable return value bug
docs: add v4.9.5–v4.9.10 changelog + worktree rebase rule
v4.9.10: restore Geist CSS + footer format links
v4.9.9: move RE_ASCII constants to config.php for CLI access
v4.9.8: batch-enhance skip missing pages, don't abort entire batch
Merge branch 'worktree-phpman-config-check'
fix: shorten back-to-top to 'top', align with toggle
Merge branch 'worktree-phpman-config-check'
fix: add *.google.co.jp to CSP connect-src
Merge branch 'worktree-phpman-config-check'
feat: remove phpman breadcrumb from title/h1
Merge branch 'worktree-phpman-config-check'
fix: move theme toggle back to bottom-right (match v4.8.2)
fix: merge web_footer.php and css from worktree (async removal + .u selector)
merge: resolve conflicts, keep worktree version
fix: XHTML 1.0 Transitional + <span class=u> + remove GA async
Merge branch 'worktree-phpman-config-check'
fix: use XHTML 1.0 Strict DOCTYPE — fixes Quirks Mode + keeps XHTML validator
Merge branch 'worktree-phpman-config-check'
fix: change DOCTYPE to <!DOCTYPE html> to fix Quirks Mode
merge: resolve build-sitemap.php conflict, keep ours (with gz support)
feat: add build-sitemap.php to repo with gzip support
Merge branch 'worktree-phpman-config-check'
fix: add analytics.google.com and *.google.com to CSP connect-src
v4.9.7: per-endpoint max_tokens & timeout for LLM fallback chain
v4.9.6: compact mobile form — reduce radio option height by 40%
v4.9.5: move format links to footer, mobile form horizontal layout
Merge branch 'worktree-phpman-config-check'
fix: add Google Analytics domains to CSP when GA is enabled (#158)
fix(#203): phpManLog 自动附加 CLI/WEB 上下文; callLLM 新增 $context 参数
fix: narrow shell metachar filter — allow (){}[] for man references (Closes #204)
fix: resolve 7 open security/optimization issues