AI can write. Humans can read the full history.
Fill minimum metadata for old records to reduce alert noise. Safe mode first: run dry-run before apply.
| ID | Title | Status | Priority | Owner | Project/Site | Due | At | Update |
|---|---|---|---|---|---|---|---|---|
| 33 | [Risk Fix] TODO assignee mapping corrected in risk engine Patched todos query to include assignee field for missing_required checks; alert noise removed. |
high | aiagent | todo.namnan.co.th todo.namnan.co.th |
2026-05-26 | 2026-05-26T08:11:09+07:00 |
2026-05-26T08:11:09+07:00
machine=157.85.98.240 | program=AI Full Dev | model=GPT-5 (Codex) | evidence=yes |
|
| 32 | [Backfill Tool] Apply minimum metadata for legacy records Backfill minimum fields applied: total=73 activities=30 plans=9 todos=32 debug_items=2 |
high | ops | todo-namnan-v1 todo.namnan.co.th |
2026-05-26 | 2026-05-26T08:07:38+07:00 |
2026-05-26T08:07:38+07:00
machine=157.85.98.240 | program=AI Full Dev | model=GPT-5 (Codex) | evidence=yes |
|
| 31 | [P0 Guardrails] Enforced required fields, Definition of Done, and risk alert dashboard Added schema migrations and validation rules: owner/due_date/project/site/priority required; done/resolved/closed require evidence. Added risk summary + alert list UI and API exposure. |
high | ops | todo.namnan.co.th todo.namnan.co.th |
2026-05-26 | 2026-05-26T07:37:43+07:00 |
2026-05-26T07:37:43+07:00
machine=Narongs-MacBook-Air.local | program=AI Full Dev | model=GPT-5 (Codex) | evidence=yes |
|
| 30 | [V1.1 Deploy] activity metadata dropdown suggestions enabled Admin Quick Add now supports suggestion dropdown (datalist) for machine/program/model/version with defaults + history values |
high | aiagent | todo.namnan.co.th todo.namnan.co.th |
2026-05-26 | 2026-05-26T07:01:10+07:00 |
2026-05-26T07:01:10+07:00
machine=157.85.98.240 | program=gunicorn+nginx | model=GPT-5 (Codex) | evidence=yes |
|
| 29 | [V1 Deploy] todo.namnan.co.th production deploy complete Version 1 deployed with systemd service and HTTPS reverse proxy |
high | aiagent | todo.namnan.co.th todo.namnan.co.th |
2026-05-26 | 2026-05-26T06:54:56+07:00 |
2026-05-26T06:54:56+07:00
machine=157.85.98.240 | program=gunicorn+nginx | model=GPT-5 (Codex) | evidence=yes |
|
| 28 | เพิ่ม metadata: machine/program/model/version ใน activities ขยาย schema + viewer + admin form ให้เก็บและแสดงชื่อเครื่อง, โปรแกรมที่ใช้, AI model และ model version |
high | ai-agent | timesheet app legacy.local |
2026-05-26 | 2026-05-26T06:46:00+07:00 |
2026-05-26T06:46:00+07:00
machine=Narongs-MacBook-Air.local | program=Codex app + terminal | model=GPT-5 (Codex) | evidence=yes |
|
| 27 | ปรับ Viewer: เพิ่มฟิลเตอร์ site/domain และแสดง activities บนบอร์ด เพิ่ม query ?site=... ที่ backend/frontend, เพิ่ม type=activities, และยืนยันกรอง class.lnwsj.com ได้จริง |
high | ai-agent | timesheet app class.lnwsj.com |
2026-05-26 | 2026-05-26T06:26:09+07:00 |
2026-05-26T06:26:09+07:00
machine=Narongs-MacBook-Air.local | program=Codex app + terminal | model=GPT-5 (Codex) | evidence=yes |
|
| 26 | วิเคราะห์สาเหตุเพจโหลดช้า: แยก networkidle vs load ยืนยันว่าเว็บไม่ได้ช้าจริง: ผ่าน Cloudflare avg_total ~78-94ms, origin direct ~46-71ms; ตัวเลข ~600ms เดิมมาจากวิธีวัด waitUntil=networkidle |
high | ai-agent | vpspro-migration legacy.local |
2026-05-26 | 2026-05-26T06:18:31+07:00 |
2026-05-26T06:18:31+07:00
machine=Narongs-MacBook-Air.local | program=Codex app + terminal | model=GPT-5 (Codex) | evidence=yes |
|
| 25 | Deep full-system test + screenshot report รอบละเอียด รัน crawl + smoke + HTTP/TLS matrix + infra health แล้วออกรายงาน fullsystem-deep-report-latest.html พร้อมรูปทุกหน้าที่เข้าถึงได้ |
high | ai-agent | vpspro-migration legacy.local |
2026-05-26 | 2026-05-26T06:18:31+07:00 |
2026-05-26T06:18:31+07:00
machine=Narongs-MacBook-Air.local | program=Codex app + terminal | model=GPT-5 (Codex) | evidence=yes |
|
| 24 | บันทึก Checklist ย้ายระบบแล้ว (26-05-2026) สร้างไฟล์ MIGRATION_CHECKLIST_2026-05-26.md ระบุงานที่ย้ายเสร็จแล้ว, validation ล่าสุด, open items, rollback readiness |
high | ai-agent | vpspro-migration class.lnwsj.com |
2026-05-26 | 2026-05-26T06:18:31+07:00 |
2026-05-26T06:18:31+07:00
machine=Narongs-MacBook-Air.local | program=Codex app + terminal | model=GPT-5 (Codex) | evidence=yes |
|
| 23 | Rerun smoke test closeout for class.lnwsj.com Public: class root/login 200. www.class TLS handshake fail at Cloudflare edge. Origin direct to 157.85.98.240 class root/login 200. Services nginx/php8.3-fpm/mysql active. Disk / usage 2%. |
high | ai | VPSPro class.lnwsj.com |
2026-05-26 | 2026-05-26T05:10:28+07:00 |
2026-05-26T05:10:28+07:00
machine=Narongs-MacBook-Air.local | program=Codex app + terminal | model=GPT-5 (Codex) | evidence=yes |
|
| 22 | Enabled 24h cutover monitoring and rollback trigger for class.lnwsj.com Installed class-cutover-monitor systemd timer on 157.85.98.240 (every 5 min). Trigger rules created for public/origin/db/service/latency/disk and evidence logs at /var/log/class-cutover/events.log. |
high | ops | class.lnwsj.com class.lnwsj.com |
2026-05-26 | 2026-05-26T04:55:07+07:00 |
2026-05-26T04:55:07+07:00
machine=Narongs-MacBook-Air.local | program=Codex app + terminal | model=GPT-5 (Codex) | evidence=yes |
|
| 21 | Ran post-cutover smoke test for class.lnwsj.com PASS: DNS resolves via Cloudflare, class.lnwsj.com HTTP->HTTPS and HTTPS 200 on edge and origin, DB/table/filesystem/service checks pass. FAIL/BLOCKER: www.class.lnwsj.com HTTPS handshake fail; old-origin HTTPS rollback probe handshake fail. |
high | ops | class.lnwsj.com class.lnwsj.com |
2026-05-26 | 2026-05-26T04:48:37+07:00 |
2026-05-26T04:48:37+07:00
machine=Narongs-MacBook-Air.local | program=Codex app + terminal | model=GPT-5 (Codex) | evidence=yes |
|
| 20 | Issued Let's Encrypt SSL on new origin for class.lnwsj.com Ran certbot on 157.85.98.240; cert active and HTTPS 200 via Cloudflare for class.lnwsj.com. www.class.lnwsj.com still TLS handshake fail at Cloudflare edge. |
high | ops | class.lnwsj.com class.lnwsj.com |
2026-05-26 | 2026-05-26T04:45:01+07:00 |
2026-05-26T04:45:01+07:00
machine=Narongs-MacBook-Air.local | program=Codex app + terminal | model=GPT-5 (Codex) | evidence=yes |
|
| 19 | Copied class.lnwsj.com data from old server to 157.85.98.240 without deleting source Completed source inventory, full DB snapshot, web files transfer (~528MB), DB restore (86 tables), app vhost enable, and login page smoke on new server. |
urgent | ai | class.lnwsj.com class.lnwsj.com |
2026-05-26 | 2026-05-26T04:33:54+07:00 |
2026-05-26T04:33:54+07:00
machine=Narongs-MacBook-Air.local | program=Codex app + terminal | model=GPT-5 (Codex) | evidence=yes |
|
| 18 | Created Cloudflare DNS import zone file for lnwsj.com (44 records) Generated BIND zone file from provided DNS table for Cloudflare Import DNS Records. |
high | ai | lnwsj.com legacy.local |
2026-05-26 | 2026-05-26T02:31:50+07:00 |
2026-05-26T02:31:50+07:00
machine=Narongs-MacBook-Air.local | program=Codex app + terminal | model=GPT-5 (Codex) | evidence=yes |
|
| 17 | Prepared maintenance index.html on 157.85.98.240 for class.lnwsj.com cutover Created maintenance page, nginx vhost config, and enable/disable scripts. Verified page render when enabled and restored default after test. |
high | ai | class.lnwsj.com class.lnwsj.com |
2026-05-26 | 2026-05-26T02:20:39+07:00 |
2026-05-26T02:20:39+07:00
machine=Narongs-MacBook-Air.local | program=Codex app + terminal | model=GPT-5 (Codex) | evidence=yes |
|
| 16 | Planned class.lnwsj.com pre-cutover readiness checklist Created plan + 9 todos for backup/restore/readiness/ssl/dns/monitoring before DNS switch. |
high | ai | class.lnwsj.com class.lnwsj.com |
2026-05-26 | 2026-05-26T01:41:27+07:00 |
2026-05-26T01:41:27+07:00
machine=Narongs-MacBook-Air.local | program=Codex app + terminal | model=GPT-5 (Codex) | evidence=yes |
|
| 15 | Reboot completed on 157.85.98.240 and post-boot services healthy Host rebooted successfully; reboot_required cleared; nginx/php8.3-fpm/mysql/postgresql/fail2ban/certbot.timer/cron all active. |
high | ai | VPSPro Migration legacy.local |
2026-05-26 | 2026-05-26T00:10:05+07:00 |
2026-05-26T00:10:05+07:00
machine=Narongs-MacBook-Air.local | program=Codex app + terminal | model=GPT-5 (Codex) | evidence=yes |
|
| 14 | Post-install audit complete: remaining actions identified Verified runtime, services, DB hardening, firewall, SSL timer, backup scheduler, and open todos. Remaining: reboot, php8.1 decision, SSL issuance, first backup verification, app instance binding. |
high | ai | VPSPro Migration legacy.local |
2026-05-25 | 2026-05-25T23:03:16+07:00 |
2026-05-25T23:03:16+07:00
machine=- | program=- | model=- | evidence=yes |
|
| 13 | Standardized Python/Node baseline: Node upgraded to 22 LTS and common service model verified Node moved to v22.22.2 via NodeSource; npm=10.9.7; both Python/Node templates present under systemd app-*@.service. |
high | ai | VPSPro Migration legacy.local |
2026-05-25 | 2026-05-25T22:58:44+07:00 |
2026-05-25T22:58:44+07:00
machine=- | program=- | model=- | evidence=yes |
|
| 12 | Detailed runtime check complete: Python + Node stacks on 157.85.98.240 Captured versions, binaries, runtime metadata, PM2 state, and maintenance flags for both stacks. |
high | ai | VPSPro Migration legacy.local |
2026-05-25 | 2026-05-25T22:41:50+07:00 |
2026-05-25T22:41:50+07:00
machine=- | program=- | model=- | evidence=yes |
|
| 11 | Viewer updated: Project Identity aligned to Notion operating rules Added project_id/environment/source/repo_root/notion_url on viewer header and viewer API payload. |
high | ai | VPSPro Migration legacy.local |
2026-05-25 | 2026-05-25T22:38:01+07:00 |
2026-05-25T22:38:01+07:00
machine=- | program=- | model=- | evidence=yes |
|
| 10 | Validation complete: viewer online and server stack verified Verified /api/summary on local viewer and confirmed target services active. |
high | ai | VPSPro legacy.local |
2026-05-25 | 2026-05-25T22:33:10+07:00 |
2026-05-25T22:33:10+07:00
machine=- | program=- | model=- | evidence=yes |
|
| 9 | P6 complete: systemd templates + logrotate + backup cron + standard dirs created auto-updated from execution evidence |
high | ai | VPSPro Migration legacy.local |
2026-05-25 | 2026-05-25T22:29:21+07:00 |
2026-05-25T22:29:21+07:00
machine=- | program=- | model=- | evidence=yes |
|
| 8 | P5 complete: python runtime + build tools + node/npm + pm2 installed auto-updated from execution evidence |
high | ai | VPSPro Migration legacy.local |
2026-05-25 | 2026-05-25T22:29:21+07:00 |
2026-05-25T22:29:21+07:00
machine=- | program=- | model=- | evidence=yes |
|
| 7 | P4 complete: mysql+postgres installed, baseline hardening applied auto-updated from execution evidence |
high | ai | VPSPro Migration legacy.local |
2026-05-25 | 2026-05-25T22:29:21+07:00 |
2026-05-25T22:29:21+07:00
machine=- | program=- | model=- | evidence=yes |
|
| 6 | P3 complete: php8.3-fpm stack installed and active auto-updated from execution evidence |
high | ai | VPSPro Migration legacy.local |
2026-05-25 | 2026-05-25T22:29:21+07:00 |
2026-05-25T22:29:21+07:00
machine=- | program=- | model=- | evidence=yes |
|
| 5 | P2 complete: nginx+certbot installed, nginx active on :80, ufw open 80/443 auto-updated from execution evidence |
high | ai | VPSPro Migration legacy.local |
2026-05-25 | 2026-05-25T22:29:21+07:00 |
2026-05-25T22:29:21+07:00
machine=- | program=- | model=- | evidence=yes |
|
| 4 | P1 complete: base tools installed ติดตั้งและยืนยัน base tools: git curl wget rsync unzip zip jq htop iotop nload ncdu tree acl ufw fail2ban |
high | ai | VPSPro legacy.local |
2026-05-25 | 2026-05-25T22:21:19+07:00 |
2026-05-25T22:21:19+07:00
machine=- | program=- | model=- | evidence=yes |
|
| 3 | P0 complete: system updated + timezone set + UFW enabled รัน apt update/upgrade เสร็จ, timezone=Asia/Bangkok, UFW active allow 22/80/443; พบ reboot-required จาก libc6/dbus |
urgent | ai | VPSPro legacy.local |
2026-05-25 | 2026-05-25T22:21:19+07:00 |
2026-05-25T22:21:19+07:00
machine=- | program=- | model=- | evidence=yes |
|
| 2 | กำหนดกติกาในแอป: อัปเดตสถานะและลงเวลา Timesheet ทุกงาน เพิ่ม rule plan/todo เพื่อใช้เป็น process บังคับระหว่างทำ P0-P6 |
high | ai | VPSPro legacy.local |
2026-05-25 | 2026-05-25T22:13:48+07:00 |
2026-05-25T22:13:48+07:00
machine=- | program=- | model=- | evidence=yes |
|
| 1 | ลงแผนติดตั้ง P0-P6 เข้า Timesheet App และเปิดระบบติดตามสถานะ เพิ่ม plans/todos ตามแผน no-docker และกำหนด process ให้ update ทุกครั้งที่ทำงานเสร็จ |
high | ai | VPSPro legacy.local |
2026-05-25 | 2026-05-25T22:13:22+07:00 |
2026-05-25T22:13:22+07:00
machine=- | program=- | model=- | evidence=yes |
| ID | Entity | Action | Summary | Actor | Time |
|---|---|---|---|---|---|
| 89 | activities#33 | create | [Risk Fix] TODO assignee mapping corrected in risk engine | aiagent (web) | 2026-05-26T08:11:09+07:00 |
| 88 | activities#32 | create | [Backfill Tool] Apply minimum metadata for legacy records | root (api) | 2026-05-26T08:07:38+07:00 |
| 87 | activities#31 | create | [P0 Guardrails] Enforced required fields, Definition of Done, and risk alert dashboard | aiagent (api) | 2026-05-26T07:37:43+07:00 |
| 86 | activities#30 | create | [V1.1 Deploy] activity metadata dropdown suggestions enabled | aiagent (api) | 2026-05-26T07:01:10+07:00 |
| 85 | activities#29 | create | [V1 Deploy] todo.namnan.co.th production deploy complete | aiagent (api) | 2026-05-26T06:54:56+07:00 |
| 84 | activities#28 | create | เพิ่ม metadata: machine/program/model/version ใน activities | ai (api) | 2026-05-26T06:46:00+07:00 |
| 83 | activities#27 | create | ปรับ Viewer: เพิ่มฟิลเตอร์ site/domain และแสดง activities บนบอร์ด | ai (api) | 2026-05-26T06:26:09+07:00 |
| 82 | todos#32 | create | [Ops-Log] อัปเดต timesheet app: checklist + deep test + performance diagnosis | ai (api) | 2026-05-26T06:18:31+07:00 |
| 81 | activities#26 | create | วิเคราะห์สาเหตุเพจโหลดช้า: แยก networkidle vs load | ai (api) | 2026-05-26T06:18:31+07:00 |
| 80 | activities#25 | create | Deep full-system test + screenshot report รอบละเอียด | ai (api) | 2026-05-26T06:18:31+07:00 |
| 79 | activities#24 | create | บันทึก Checklist ย้ายระบบแล้ว (26-05-2026) | ai (api) | 2026-05-26T06:18:31+07:00 |
| 78 | debug_items#2 | create | www.class.lnwsj.com HTTPS handshake failure | ai-agent (api) | 2026-05-26T05:10:28+07:00 |
| 77 | todos#31 | create | Cloudflare lnwsj.com: adjust www.class DNS/proxy then re-issue SSL | ai-agent (api) | 2026-05-26T05:10:28+07:00 |
| 76 | activities#23 | create | Rerun smoke test closeout for class.lnwsj.com | ai-agent (api) | 2026-05-26T05:10:28+07:00 |
| 75 | activities#22 | create | Enabled 24h cutover monitoring and rollback trigger for class.lnwsj.com | ai-agent (api) | 2026-05-26T04:55:07+07:00 |
| 74 | todos#30 | status_update | [Class-Cutover] ติดตาม 24 ชั่วโมงและกำหนด rollback trigger -> doing | ai-agent (api) | 2026-05-26T04:55:06+07:00 |
| 73 | activities#21 | create | Ran post-cutover smoke test for class.lnwsj.com | ai-agent (api) | 2026-05-26T04:48:37+07:00 |
| 72 | debug_items#1 | create | Post-cutover smoke: www.class.lnwsj.com TLS handshake fail + old-origin https rollback check fail | ai-agent (api) | 2026-05-26T04:48:37+07:00 |
| 71 | todos#29 | status_update | [Class-Cutover] เปลี่ยน DNS และรัน post-cutover smoke checklist -> blocked | ai-agent (api) | 2026-05-26T04:48:37+07:00 |
| 70 | activities#20 | create | Issued Let's Encrypt SSL on new origin for class.lnwsj.com | ai-agent (api) | 2026-05-26T04:45:01+07:00 |
| 69 | todos#27 | status_update | [Class-Cutover] เตรียม SSL issuance (certbot) หลัง DNS ชี้เข้าเครื่องใหม่ -> done | ai-agent (api) | 2026-05-26T04:45:01+07:00 |
| 68 | plans#9 | status_update | Cutover Plan: class.lnwsj.com DNS switch to new server -> in_progress | ai-agent (api) | 2026-05-26T04:34:07+07:00 |
| 67 | activities#19 | create | Copied class.lnwsj.com data from old server to 157.85.98.240 without deleting source | ai-agent (api) | 2026-05-26T04:33:54+07:00 |
| 66 | todos#26 | status_update | [Class-Cutover] ทดสอบ app readiness บนเครื่องใหม่ด้วย host override -> done | ai-agent (api) | 2026-05-26T04:33:54+07:00 |
| 65 | todos#25 | status_update | [Class-Cutover] ทดสอบ restore backup บนเครื่องใหม่แบบแยกพื้นที่ -> done | ai-agent (api) | 2026-05-26T04:33:54+07:00 |
| 64 | todos#24 | status_update | [Class-Cutover] Full backup DB + files + config จากต้นทาง -> done | ai-agent (api) | 2026-05-26T04:33:54+07:00 |
| 63 | todos#23 | status_update | [Class-Cutover] เก็บ inventory ต้นทาง (nginx, app path, cron, env, uploads) -> done | ai-agent (api) | 2026-05-26T04:33:54+07:00 |
| 62 | activities#18 | create | Created Cloudflare DNS import zone file for lnwsj.com (44 records) | ai-agent (api) | 2026-05-26T02:31:50+07:00 |
| 61 | activities#17 | create | Prepared maintenance index.html on 157.85.98.240 for class.lnwsj.com cutover | ai-agent (api) | 2026-05-26T02:20:39+07:00 |
| 60 | activities#16 | create | Planned class.lnwsj.com pre-cutover readiness checklist | ai-agent (api) | 2026-05-26T01:41:27+07:00 |
| 59 | todos#30 | create | [Class-Cutover] ติดตาม 24 ชั่วโมงและกำหนด rollback trigger | ai (api) | 2026-05-26T01:41:19+07:00 |
| 58 | todos#29 | create | [Class-Cutover] เปลี่ยน DNS และรัน post-cutover smoke checklist | ai (api) | 2026-05-26T01:41:19+07:00 |
| 57 | todos#28 | create | [Class-Cutover] ลด TTL ล่วงหน้าและบันทึกค่า DNS เดิม | ai (api) | 2026-05-26T01:41:19+07:00 |
| 56 | todos#27 | create | [Class-Cutover] เตรียม SSL issuance (certbot) หลัง DNS ชี้เข้าเครื่องใหม่ | ai (api) | 2026-05-26T01:41:19+07:00 |
| 55 | todos#26 | create | [Class-Cutover] ทดสอบ app readiness บนเครื่องใหม่ด้วย host override | ai (api) | 2026-05-26T01:41:19+07:00 |
| 54 | todos#25 | create | [Class-Cutover] ทดสอบ restore backup บนเครื่องใหม่แบบแยกพื้นที่ | ai (api) | 2026-05-26T01:41:19+07:00 |
| 53 | todos#24 | create | [Class-Cutover] Full backup DB + files + config จากต้นทาง | ai (api) | 2026-05-26T01:41:19+07:00 |
| 52 | todos#23 | create | [Class-Cutover] เก็บ inventory ต้นทาง (nginx, app path, cron, env, uploads) | ai (api) | 2026-05-26T01:41:19+07:00 |
| 51 | todos#22 | create | [Class-Cutover] ตั้ง freeze window และแจ้งช่วงงาน | ai (api) | 2026-05-26T01:41:19+07:00 |
| 50 | plans#9 | create | Cutover Plan: class.lnwsj.com DNS switch to new server | ai-agent (api) | 2026-05-26T01:40:55+07:00 |
| 49 | activities#15 | create | Reboot completed on 157.85.98.240 and post-boot services healthy | ai-agent (api) | 2026-05-26T00:10:05+07:00 |
| 48 | todos#17 | status_update | [P0] ดำเนินการ reboot หลัง maintenance window (required by libc6/dbus) -> done | ai-agent (api) | 2026-05-26T00:10:05+07:00 |
| 47 | todos#21 | create | [Audit] ผูกแอปจริงเข้ากับ app-node@ / app-python@ (ตอนนี้ยังไม่มี instance) | ai-agent (api) | 2026-05-25T23:03:30+07:00 |
| 46 | todos#20 | create | [Audit] ทดสอบ backup script รอบแรกและตรวจไฟล์ใน /srv/backups | ai-agent (api) | 2026-05-25T23:03:30+07:00 |
| 45 | todos#19 | create | [Audit] ออก SSL จริงสำหรับทุกโดเมนที่จะย้าย (ตอนนี้ certbot ยังไม่มี cert) | ai-agent (api) | 2026-05-25T23:03:30+07:00 |
| 44 | activities#14 | create | Post-install audit complete: remaining actions identified | ai-agent (api) | 2026-05-25T23:03:16+07:00 |
| 43 | activities#13 | create | Standardized Python/Node baseline: Node upgraded to 22 LTS and common service model verified | ai-agent (api) | 2026-05-25T22:58:44+07:00 |
| 42 | todos#18 | status_update | [P5-Optional] อัปเกรด Node.js เป็น v22 LTS (ตอนนี้ติดตั้ง v18 จาก apt) -> done | ai-agent (api) | 2026-05-25T22:58:44+07:00 |
| 41 | activities#12 | create | Detailed runtime check complete: Python + Node stacks on 157.85.98.240 | ai-agent (api) | 2026-05-25T22:41:50+07:00 |
| 40 | activities#11 | create | Viewer updated: Project Identity aligned to Notion operating rules | ai-agent (api) | 2026-05-25T22:38:01+07:00 |
ทดสอบความพร้อมก่อนสลับ DNS โดยยืนยัน backup/restore/db/app/ssl/rollback ครบ ลด downtime และกันข้อมูลหาย
in_progress | urgent | owner=ops | project=class.lnwsj.com | site=class.lnwsj.com | due=2026-05-28 | evidence=noคุมไม่ให้งานตกหล่นและให้ทีมเห็นสถานะล่าสุดตลอดเวลา
done | high | owner=ops | project=legacy-project | site=legacy.local | due=2026-05-25 | evidence=yesเตรียม service, logging, backup, และโครง directory มาตรฐาน
done | high | owner=ops | project=legacy-project | site=legacy.local | due=2026-05-25 | evidence=yesเตรียม runtime สำหรับแอป Python/Node และ process manager
done | high | owner=ops | project=legacy-project | site=legacy.local | due=2026-05-25 | evidence=yesติดตั้งและตั้งค่าฐานข้อมูลหลัก MySQL/PostgreSQL
done | urgent | owner=ops | project=legacy-project | site=legacy.local | due=2026-05-25 | evidence=yesรองรับเว็บ PHP หลักบน php8.3-fpm และเตรียม compatibility กรณีเว็บเก่า
done | high | owner=ops | project=legacy-project | site=legacy.local | due=2026-05-25 | evidence=yesตั้ง Nginx เป็น edge หลักและเตรียม SSL อัตโนมัติ
done | urgent | owner=ops | project=legacy-project | site=legacy.local | due=2026-05-25 | evidence=yesติดตั้งเครื่องมือพื้นฐานสำหรับดูแลระบบและแก้ปัญหา
done | high | owner=ops | project=legacy-project | site=legacy.local | due=2026-05-25 | evidence=yesเตรียมเครื่องปลายทางให้พร้อมก่อนติดตั้ง stack หลัก
done | urgent | owner=ops | project=legacy-project | site=legacy.local | due=2026-05-25 | evidence=yescurl https://www.class.lnwsj.com fails with sslv3 alert handshake failure; A/AAAA resolve to Cloudflare IPs.
blocked | priority=medium | severity=high | owner=cloudflare-edge-tls | project=www.class.lnwsj.com | site=www.class.lnwsj.com | due=2026-05-28 | service=cloudflare-edge-tls | evidence=nohttps://class.lnwsj.com = 200 (pass), but https://www.class.lnwsj.com handshake fail at edge; old server local HTTPS probe also handshake fail.
open | priority=medium | severity=high | owner=nginx/cloudflare/caddy | project=www.class.lnwsj.com | site=www.class.lnwsj.com | due=2026-05-28 | service=nginx/cloudflare/caddy | evidence=noบันทึกงานรอบล่าสุดลง timesheet app เพื่อให้ viewer เห็นสถานะปิดงานและหลักฐาน
done | high | assignee=ops | project=plans | site=legacy.local | due=2026-05-26 | evidence=yes1) Toggle www.class to DNS-only and point to 157.85.98.240 (or provision Advanced cert for deep subdomain). 2) Run certbot --nginx -d class.lnwsj.com -d www.class.lnwsj.com --expand. 3) Re-run full smoke test and close debug item.
blocked | urgent | assignee=ops | project=class.lnwsj.com | site=class.lnwsj.com | due=2026-05-28 | evidence=noกำหนดเกณฑ์ rollback ชัดเจน เช่น error rate, DB write fail, response time
doing | high | assignee=ops | project=plans | site=legacy.local | due=2026-05-28 | evidence=nologin/admin/upload/api/cron/email/jobs + log/error-rate
blocked | urgent | assignee=ops | project=plans | site=legacy.local | due=2026-05-28 | evidence=noลด TTL ก่อน cutover, จดค่าปัจจุบันไว้ rollback
todo | high | assignee=ops | project=plans | site=legacy.local | due=2026-05-28 | evidence=noตรวจ A/AAAA, เปิดพอร์ต 80/443, เตรียม nginx server block
done | high | assignee=ops | project=plans | site=legacy.local | due=2026-05-26 | evidence=yescurl + browser smoke ด้วย /etc/hosts ก่อนเปลี่ยน DNS
done | high | assignee=ops | project=plans | site=legacy.local | due=2026-05-26 | evidence=yesยืนยัน restore เปิดได้จริง ไม่ใช่ backup อย่างเดียว
done | urgent | assignee=ops | project=plans | site=legacy.local | due=2026-05-26 | evidence=yesmysql dump/postgres dump + rsync uploads + nginx conf + .env
done | urgent | assignee=ops | project=plans | site=legacy.local | due=2026-05-26 | evidence=yesบันทึก config/version/path ทั้งหมดจากเครื่องเดิม
done | high | assignee=ops | project=plans | site=legacy.local | due=2026-05-26 | evidence=yesกำหนดวัน/เวลา cutover, ผู้รับผิดชอบ, ช่องทางสื่อสาร
todo | high | assignee=ops | project=plans | site=legacy.local | due=2026-05-28 | evidence=noสร้าง service instance ตามชื่อแอปจริงแล้ว enable/start
todo | medium | assignee=ops | project=Audit | site=legacy.local | due=2026-05-28 | evidence=noรัน /usr/local/sbin/vpspro-backup.sh แบบ manual 1 รอบเพื่อยืนยัน dump DB ผ่าน
todo | high | assignee=ops | project=Audit | site=legacy.local | due=2026-05-28 | evidence=noรอ DNS ชี้เข้าเครื่องนี้ก่อน แล้ว run certbot --nginx ต่อโดเมน
todo | high | assignee=ops | project=Audit | site=legacy.local | due=2026-05-28 | evidence=noใช้ NodeSource หรือ nvm ตามมาตรฐาน production ที่ต้องการ
done | medium | assignee=ai | project=plans | site=legacy.local | due=2026-05-25 | evidence=yesต้องรีบูตเพื่อให้แพ็กเกจอัปเดตมีผลครบถ้วน
done | high | assignee=ops | project=P0 | site=legacy.local | due=2026-05-26 | evidence=yesบังคับใช้งานกับทุก phase
done | high | assignee=ops | project=RULE | site=legacy.local | due=2026-05-25 | evidence=yesBootstrapped from installation master plan (no Docker)
done | medium | assignee=ops | project=P6 | site=legacy.local | due=2026-05-25 | evidence=yesBootstrapped from installation master plan (no Docker)
done | high | assignee=ops | project=P6 | site=legacy.local | due=2026-05-25 | evidence=yesBootstrapped from installation master plan (no Docker)
done | high | assignee=ops | project=P6 | site=legacy.local | due=2026-05-25 | evidence=yesBootstrapped from installation master plan (no Docker)
done | high | assignee=ops | project=P5 | site=legacy.local | due=2026-05-25 | evidence=yesBootstrapped from installation master plan (no Docker)
done | high | assignee=ops | project=P5 | site=legacy.local | due=2026-05-25 | evidence=yesBootstrapped from installation master plan (no Docker)
done | high | assignee=ops | project=P4 | site=legacy.local | due=2026-05-25 | evidence=yesBootstrapped from installation master plan (no Docker)
done | urgent | assignee=ops | project=P4 | site=legacy.local | due=2026-05-25 | evidence=yesBootstrapped from installation master plan (no Docker)
blocked | medium | assignee=ops | project=fb.namnan.co.th | site=fb.namnan.co.th | due=2026-05-28 | evidence=noBootstrapped from installation master plan (no Docker)
done | high | assignee=ops | project=P3 | site=legacy.local | due=2026-05-25 | evidence=yesBootstrapped from installation master plan (no Docker)
done | urgent | assignee=ops | project=P2 | site=legacy.local | due=2026-05-25 | evidence=yesBootstrapped from installation master plan (no Docker)
done | urgent | assignee=ops | project=P2 | site=legacy.local | due=2026-05-25 | evidence=yesBootstrapped from installation master plan (no Docker)
done | high | assignee=ops | project=P1 | site=legacy.local | due=2026-05-25 | evidence=yesBootstrapped from installation master plan (no Docker)
done | urgent | assignee=ops | project=P0 | site=legacy.local | due=2026-05-25 | evidence=yesBootstrapped from installation master plan (no Docker)
done | high | assignee=ops | project=P0 | site=legacy.local | due=2026-05-25 | evidence=yesBootstrapped from installation master plan (no Docker)
done | urgent | assignee=ops | project=P0 | site=legacy.local | due=2026-05-25 | evidence=yes