Commit Graph

60 Commits

Author SHA1 Message Date
posimai b5b721cd60 fix(security): add SRI to xterm CDN, add manifest id, noreferrer to target=_blank
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 18:42:38 +09:00
posimai f3cc672051 fix(security): add SRI integrity hashes to lucide CDN scripts in posimai-dev
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 08:12:36 +09:00
posimai e7594370e7 feat(ext): integrate rule engine — scan works without API key
- runRuleEngine() now runs first on every scan (133 rules, instant)
- Gemini/Claude become optional enhancement layers (deeper semantic scan)
- Removed hard requirement for API key to run scanWorkspace/scanFile
- tsconfig: remove rootDir restriction to allow relative import from guard app
- Status bar tooltip updated to reflect API-key-free scanning
- Bundle: 120kb minified (ruleEngine + RULE_FIXES included via esbuild)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 23:05:19 +09:00
posimai 75e34733a8 chore(station-b): remove dead renderBinBar function
Made-with: Cursor
2026-04-12 13:10:08 +09:00
posimai 4110de7239 fix(station): real monitoring for Vercel/GitHub via proxy, fix ok logic, health content check
Made-with: Cursor
2026-04-12 13:07:23 +09:00
posimai 65c358c58d fix(station): dead code cleanup, 0pct ring bug, Syncthing removal, SRI, canvas pause
Made-with: Cursor
2026-04-12 10:43:17 +09:00
posimai 7aa79f4a7d fix: station VPS Users/Node ハイフン・CPU リング 0% 表示修正
Made-with: Cursor
2026-04-12 08:13:58 +09:00
posimai 9e90008575 fix: WebSocket auth gate + SSRF private IP blocklist in posimai-dev 2026-04-06 00:39:18 +09:00
posimai 7580c79f05 fix: Uptime Kuma port 3001→3002 2026-04-05 22:44:25 +09:00
posimai fc00b16a13 chore: remove Syncthing from station, revert to 2-col services grid 2026-04-05 22:36:54 +09:00
posimai 3a1b6cff1e chore: add Uptime Kuma to station services, 3-col grid 2026-04-05 22:19:22 +09:00
posimai d6f7b487d0 fix: security hardening for commercial release
- Fix OAuth (Google/GitHub) DB column bug: SELECT id → SELECT user_id
- Add OAuth CSRF protection via state parameter (Google + GitHub)
- Restrict /health endpoint: detailed info requires authentication
- Add in-memory rate limiter utility (checkRateLimit)
- Add rate limit to passkey login/begin: 10 req/min per IP
- Add rate limit to Gemini AI analysis: 50 articles/hour per user
- Add rate limit to journal suggest-tags: 10 req/hour per user
- Update posimai-dev /api/vps-health proxy to send VPS_API_KEY header

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 23:04:20 +09:00
posimai 9e6a2987ed fix: security hardening - XSS, SSRF, proxy auth, Syncthing config
- server.js: add escapeHtml() and apply to meta.title / error messages (XSS)
- server.js: add startup error log when JWT_SECRET uses insecure default
- posimai-dev/server.js: add URL validation to /api/check to block SSRF
  (blocks cloud metadata IPs, non-http/https protocols)
- ponshu_room_lite/tools/proxy/server.js: remove auth bypass when
  PROXY_AUTH_TOKEN is unset; server now exits on startup if token missing
- .gitignore: add *.sync-conflict-* to prevent Syncthing conflict files
- .stignore: create Syncthing ignore file to exclude .git, node_modules,
  .env from sync (fixes root cause of .git directory sync-conflict files)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 08:15:45 +09:00
posimai 4bd098251f fix: remove ubuntu pc binbars, reduce machines gap to 8px 2026-04-03 00:56:32 +09:00
posimai 772de39ce8 fix: machines no scroll - remove margin-top:auto, 320px, 3-col statgrid 2026-04-03 00:12:16 +09:00
posimai 55f36f5ad5 fix: services fixed 460px, vitals 1fr for wider layout 2026-04-03 00:03:58 +09:00
posimai 74959df0e8 fix: service cards fill height, unify cpu labels 2026-04-02 21:14:53 +09:00
posimai 32038e2e0c fix: services 2-col 3-row, vitals wider 300px, rings larger 2026-04-02 21:06:32 +09:00
posimai 6c3f4b7e07 fix: load .env at startup, fix vercel created field, services 3-col, vps no binbar 2026-04-02 20:40:15 +09:00
posimai 3d1d599fd6 fix: merge machines panel 4-col layout, fix vps-health ok field 2026-04-02 20:33:21 +09:00
posimai f5817eb156 feat: vercel deploy status in ecosystem bar, deploy rule in CLAUDE.md 2026-04-02 20:04:39 +09:00
posimai 90ac87db41 fix: Posimai API check via /api/vps-health proxy, add favicon 2026-04-02 19:36:18 +09:00
posimai f2ef81fb7b fix: proxy VPS health via /api/vps-health to avoid browser cert errors 2026-04-02 19:28:19 +09:00
posimai 5cbf66d613 feat: add VPS panel (5-column layout), real-time VPS metrics from api.soar-enrich.com 2026-04-02 19:20:05 +09:00
posimai 465c943e0a feat: Phase 1 cockpit — net I/O, CPU temp, Gitea commit, keyboard shortcuts, CRIT aurora shift
server.js: add net delta (rx/tx KB/s), CPU temp, /api/gitea-commit proxy.
station-b: net/temp in Ubuntu PC panel, ecosystem bar with latest Gitea
commit, CRIT aurora hue shift (gradual 3s transition to red, then back),
keyboard shortcuts R=refresh B=Design-A F=fullscreen.
station-a: same additions except canvas CRIT effect.
2026-04-02 16:45:45 +09:00
posimai f726b4b9af fix: rebuild station-b from station.html base, only canvas background differs 2026-04-02 14:14:50 +09:00
posimai 70c983f1e7 fix: remove binary footer tape from station-b, restore bottom flex row 2026-04-02 14:09:39 +09:00
posimai a30beab925 fix: revert station to a91e83b baseline, restore layout integrity
station.html: reverted to last known-good state (a91e83b), with only
two minimal changes: bit-0 color tweak and Design B link in footer.
Binary footer tape removed as it caused #bottom height expansion that
crushed #middle grid row.
station-b.html: restore service-grid to auto-fill, reduce app padding
to give #middle more room.
2026-04-02 14:02:00 +09:00
posimai 790bdd6a9b fix: service-grid repeat(3) fixed columns, clock weight/color explicit
service-grid: auto-fill was creating 6 columns at wide viewports (1920px+)
putting all cards in one row. Changed to repeat(3,1fr) for always 3-column
2-row layout regardless of screen width.
station.html clock: font-weight 300→400, explicit color:var(--text) to
ensure visibility against dark background.
2026-04-02 11:33:58 +09:00
posimai c2c70b35e5 fix: restore service-grid auto-fill columns, station-b header backdrop
Both station.html and station-b.html: restore .service-grid to
display:grid with repeat(auto-fill,minmax(168px,1fr)) — the multi-column
layout that was incorrectly changed to flex-column in the previous fix.
station-b.html: add dark backdrop-filter panel to #top so clock and
hostname text are readable over the binary rain canvas background.
2026-04-02 11:20:21 +09:00
posimai 9a37540857 fix: service-grid flex layout and station-b forEach arrow syntax error
station.html: revert .service-grid to flex-column (was accidentally set
to grid auto-fill causing horizontal card layout and missing clock).
station-b.html: add missing => in cols.forEach callback that crashed
the entire script, preventing data load and canvas aurora animation.
2026-04-02 10:20:53 +09:00
posimai b355e23b63 feat: station full-width binary footer, colored 0, Design B binary curtain aurora 2026-04-02 09:36:08 +09:00
posimai 1aede6418d fix: add /station and /sessions route aliases 2026-04-01 14:59:04 +09:00
posimai a91e83bf5c fix: restrict session API to Tailscale network, clarify uptime label 2026-04-01 07:57:27 +09:00
posimai 34f5acbbc9 fix: resolve loadAvg is not defined ReferenceError in updateStream 2026-03-31 22:13:01 +09:00
posimai 0113a5d777 feat: binary bars, sparkline, full-metrics binary ticker
- CPU/MEM/DISK bars replaced with 20-cell binary bars (1=filled, 0=empty)
- Service cards: latency bar removed, mini sparkline with gradient area added
- Footer ticker: all metrics as binary tape (CPU/MEM/DISK/LOAD/UP/SESSION/TIME/IP/HOST)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 22:03:13 +09:00
posimai df1a41560b feat: add binary representation of CPU/MEM/DISK metrics under progress bars
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 21:48:09 +09:00
posimai eb2d8877c5 fix: atlas mixed-content, station footer URL, service card uptime+latency bar
- atlas: skip http:// health_url from https context
- station: dashboard footer link → posimai.soar-enrich.com
- station: service cards add uptime %, latency bar, updateLatencyBar fn

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 21:42:58 +09:00
posimai 0bd747ebd2 chore: increase station font sizes for HDMI monitor readability
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 21:32:47 +09:00
posimai 15b87f3722 fix: proxy HTTP health checks via server to avoid mixed-content block
- Add /api/check?url= endpoint to server.js for server-side HTTP checks
- Gitea and Syncthing use proxy:true to route through this endpoint
- Fixes Gitea/Syncthing showing DOWN due to https→http mixed content

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 21:24:13 +09:00
posimai e5f9c30d1e fix: handle destroyed logStream in pty, update kiosk URL to https:3333 2026-03-31 13:37:38 +09:00
posimai 991b8f59d8 feat: add kiosk setup script for Ubuntu PC 2026-03-31 13:11:06 +09:00
posimai 94fcdc3072 fix: Atlas surface colors to navy theme, widen station Vitals panel, update docs username to mai 2026-03-31 12:48:18 +09:00
posimai b121872c19 feat(station): donut rings, sparklines, glass panels, service history dots
Redesign with glassmorphism panels (backdrop-filter blur+saturate).
Ring charts for CPU/mem/disk with glow filter and smooth transition.
Sparkline history (20 samples) for CPU and Load Average.
Service cards now show 5-sample history dots.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 12:07:53 +09:00
posimai ca765544ce feat(station): binary stream panel with real metrics encoded as bits
New right-column panel: each metric (CPU, memory, disk, load, uptime,
sessions, unix timestamp) shown as actual binary bits + human value +
mini bar. Rotates through rows every 4s. IP scrolls as binary ticker.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 10:09:04 +09:00
posimai af8707644f feat(station): add disk, load average, alert banner to system monitor
server.js: /api/health now includes disk usage (df -B1 /) and load_avg
(os.loadavg) + cpu_count. station.html: disk bar, load average chips
with warn/crit coloring vs cpu count, alert banner highlights issues.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 10:02:55 +09:00
posimai 7ca153546d feat(station): add posimai-station fullscreen kiosk dashboard
Real-time system monitor for Ubuntu PC HDMI display.
Polls /api/health every 30s for CPU/memory/uptime metrics,
checks all service endpoints, Aurora design with JetBrains Mono clock.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 09:31:44 +09:00
posimai 6c138981a7 fix(posimai-dev): accurate cpu_pct via 100ms dual-sample diff
Single snapshot returns lifetime average (near 0 on idle systems).
Two samples 100ms apart gives real-time cpu usage per core, then averaged.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 07:50:16 +09:00
posimai c09d5defd3 feat(posimai-dev): add /api/health endpoint with CORS
Returns cpu_pct, mem_used_mb, mem_total_mb, uptime_s, active_sessions, hostname, node_version, platform, timestamp.
Enables Atlas and other Tailscale-accessible clients to pull realtime Ubuntu PC metrics.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 07:48:01 +09:00
posimai f57125c5b6 fix(posimai-dev): aurora visibility, scrollbar styling
- Force xterm-viewport/screen/canvas to transparent so container aurora shows through
- theme.background: 'transparent' (was rgba with 0 alpha — some renderers ignored it)
- Scrollbar: 5px, violet 40% opacity, thin Firefox fallback via scrollbar-color

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 07:26:06 +09:00