f6635edb06
feat(home,features,tenant): SCR-HOME landing + 100-feature waves 8-9 + tenant-first PK standard + crawled events (V27-V35)
...
- SCR-HOME (/home): post-login landing per owner directive — role-based KPI row, banner
carousel, exhibition poster showcase rail, WISE-pattern month calendar with dynamic
hall-center filter, role-based my-tasks widget, notices/quick-actions/activity,
workspace grid, ShellFooter; login now lands on /home (workspace picker absorbed);
backend /api/home/{todos,showcase,hall-centers,summary}; Stitch mockup harvested and reconciled
- tenant standard (owner directive): tenant id 'KINTEX', tenant_id leads composite PKs
(V31 conversion with FK-safe UNIQUE(id) preservation; V27/29/30/33/34/35 born compliant);
JWT tid backward-compat normalization
- crawl: 34 upcoming kintex.com exhibitions with posters + detail enrichment
(organizer/site/items/description) upserted idempotently (V32)
- wave 8: F100 AI router (Claude->Ollama fallback, AiConfig) + lead AI rescore + CMS AI
translation; F005/6 booth sales (V27, atomic hold); F035 BOQ + F084 auction fee -> invoice
(V28); F028 approval workflow (V29, /work/approval)
- wave 9: F041/42/43 logistics tabs (V33); F085 refund rules + F083 tax invoice/report
(V34, fiscal gates documented); F092 text-to-SQL with 7-step guard + F025 rules chatbot;
F099 webhook gateway (HMAC inbound, outbound stub) + F052 follow-up EDM trigger (V35)
- verified: compileJava, full test suite, tsc -b --force, vite build all EXIT 0
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 14:11:19 +09:00
9d47f9373f
feat(shell,tenant,i18n): wave 7 — MDI tab shell, multitenancy phase 2 (JWT tid + fail-closed guard), i18n sweep 2
...
- MDI: additive tab layer over existing routing (MdiTabBar + mdiStore, sessionStorage,
dedup, max 10, keyboard a11y, dark-theme tokens); route tree untouched
- tenant p2: JWT tid claim with kintex fallback (backward compatible), EventAccessGuard
cross-tenant 403 (EventTenantMapper + isolation tests), explicit tenant scoping on
analytics/admin/sysuser aggregates; login threads app_user.tenant_id into tokens
- i18n sweep 2: 17 core+admin screens extracted to 30 namespaces x 4 locales (ko/en/zh/ja),
zero ko-render regression; P2/P3 sweep list documented
- verified: tsc -b --force, vite build, compileJava, test (75/75) all EXIT 0
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 11:51:00 +09:00
48572d261a
feat(nfr,tenant): wave 5+6 — dark theme toggle, i18n (ko/en/zh/ja), multitenancy phase 1 (V26)
...
- theme: dark palette remap via [data-theme], themeStore persistence, AppShell toggle,
shared-layer hex -> semantic tokens, focus-ring/reduced-motion/skip-link a11y
- i18n: react-i18next with browser detection + ko fallback; full extraction for public
site P1-P7 and login/signup/forgot flows; LanguageSwitcher wired in public shell,
login, and AppShell
- multitenancy: V26 tenant master + tenant_id (event/hall/app_user, DEFAULT 'kintex'),
TenantContextFilter (X-Tenant-Id -> Host -> default), catalog/hall scoping (zero
behavior change), /api/admin/tenants GET/POST wired for SCR-A9
- ops(prod): kintex.wise.ai.kr live — nginx vhost on wise host proxying verified dev
origin + LE TLS; full-stack split deferred (host RAM/disk constraint, see WORK_STATUS)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 10:52:52 +09:00
4049b7c222
feat(backlog): wave 4 — ops real-data, M9 settlement (V24), M1 hall assign+quote (V25), roleCode/nav; fix OTP retry lockout
...
- fix(security): verifyOtp/enrollVerify consumed the challenge BEFORE code verification —
one mistyped TOTP burned the session and every retry hit "세션 만료" (live incident).
Now consume only on success, keep challenge for up to 5 failures (OtpChallengeStoreTest)
- SCR-14 ops: congestion from real check-in aggregates, power from utility orders;
hardware widgets stay as honest "sensor not connected" empty states
- M9 settlement: /api/settlement (dashboard/invoices/generate/issue/payments), V24 invoice
tables, server-authoritative amounts (ST_Area x rate + VAT), PG-delegation notice, /settlement UI
- M1 hall assign: /api/halls CRUD + period-overlap conflict (409 with details) + rates-v1.0
auto-quote, V25 idempotent period columns, /halls board UI
- shared: AuthUser.roleCode (JWT rc claim, additive), AdminGuard precise check, AppShell
placeholder nav wired via event-context builders, /_styleguide dev-only route
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 10:14:29 +09:00
8a49a68a6a
feat(backlog): wave 3 — BI global overview, admin CRUD screens+guard, schedule real-data (V23); fix boot crash
...
- fix: MyBatis <script> XML violations (AuctionMapper deadline<now(), VisitorMapper <=) that
crash-looped boot and triggered health rollback; add MapperAnnotationParseTest regression guard
- M16 BI: GET /api/analytics/overview — cross-event revenue, monthly hall utilization,
exhibitor retention, linear-regression forecast (hall-manager only, no migration)
- M18 admin: users/roles/codes/menus CRUD screens consuming live system APIs, AdminGuard on all
/admin/* routes, landing module shortcuts; A8 rulesets confirmed already live-wired
- SCR-15 schedule: V23 (category/est_visitors backfill), hall-utilization + calendar APIs,
screen switched to real data with offline fallback
- QA: replace text check glyph with IconCheck SVG
- verified: compileJava, test (incl. mapper parse), tsc -b --force, vite build all EXIT 0
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 09:44:44 +09:00
c6f3a8d916
feat(domains): second-wave hardening — auction scoring, visitor check-in/lead engine, CMS versions/media/public (V21)
...
- M15 auction: scoring/quotation calc + unit tests, screens/auction local API as canonical client
- M10 visitor: check-in desk (SCR-31, /visitors/checkin route+nav), QR token + checkin_at,
lead exhibitor/consent/note, check-in/search/stats/badge-reissue/lead-create/CSV export
(masked PII only, RBAC-guarded, @Audited) + rule-based lead scoring engine
- M17 CMS: content version history, media library, public CMS API (/api/public/cms), HtmlSanitizer
- Flyway repair: extensions appended to already-applied V17/V19 split into V21 (checksum-safe), V17/V19 restored
- verified: compileJava, test, tsc -b all EXIT 0
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 09:09:14 +09:00
abc9f83690
docs: record Stitch port track (25 screens) + derived backlog 1B
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-12 05:28:56 +09:00
345082c251
docs: WORK_STATUS — track close-out, 3 hotfixes, live E2E results, new pitfalls
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-12 04:12:39 +09:00
c3a695d70c
feat(stitch): harvest all 39 pending screens (64/64 secured)
...
- Web core SCR-22/23/25-27/29/30/32-50 (26), admin A5/A6/A8/A9, public P1-P7, mobile M15
- +5 supplementary variants (P4 3-step, P7 manage, M15 ticket-select), 43 files, 0 failures
- All delayed generations recovered server-side (project 27 -> 155 screens), no regeneration needed
- WORK_STATUS: stitch 64/64 + real-data/2FA track close-out recorded
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-12 03:27:05 +09:00
c7b853be17
docs: record Stitch pending 39 screens + recovery procedure in WORK_STATUS
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 01:07:41 +09:00
ba90b54d81
feat(proposal): G2B-standard 7-chapter proposal deck (97 slides, QA-approved)
...
- Restructure to KONEPS (조달청 협상계약 별지5호) standard TOC: I general / II strategy-methodology / III tech-function / IV performance-quality / V PM / VI support / VII misc
- 9 new slides: staffing M/M, quantitative eval, standard framework, PM methodology, handover/training, SM/SLA, incident/BCP, managerial security, subcontracting
- Scoring alignment updated to tech 90 (70 qual + 20 quant) / price 10
- Nanobanana win-theme dual placement (II applied-tech + III function)
- Appendix D screen gallery (19 Stitch drafts) with AI-draft disclosure
- QA PASS: RTM 142/142 (3 fixes: F-008/F-010/F-026), no secrets, honesty labels verified
- Preserve rebuild toolchain + source docs in deliverables/제안서/_gen (16 files)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 00:44:44 +09:00
6c9891c7e2
feat: mobile harness + design v2.1 (84 screens) + PLANNING v3.1 + deliverables + Stitch screens
...
- Harness: kintex-mobile-dev agent + kintex-mobile-orchestrator skill (WISE mobile ref, Stitch-first design rule, dual app targets B2B/B2C)
- design.md v2.1: full 84-screen inventory (web 51 / admin 10 / public 8 / mobile 15) with Stitch prompts incl. ticketing (SCR-P7/P8, M14/M15)
- PLANNING v3.1: unified account + split signup tracks (2FA required for staff, light signup/guest for visitors), one codebase / two app targets
- Deliverables: dev plan (21s), user/operator/developer guides (17/14/15s), program spec (44s, 65 programs, 8 flowcharts), DA (DB design 14s + table spec xlsx 35 tables/299 cols)
- Benchmark: ticketing-app-benchmark.md (7 apps) -> IMPLEMENTATION_BACKLOG Phase F (14 items)
- Stitch: 23 generated screens saved (mobile 10, admin 6, web core 5, ticket 2)
- mobile/: Expo scaffold (SDK 51, expo-router, secure store JWT)
- frontend: SCR-13~17 QA fixes, icons.tsx, kintexEvents, V10 seed migration
- ci/: KINTEX CI logo assets
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-11 23:31:45 +09:00
117d1b3d56
docs: 산출물 갱신 정책 변경 — 최초 1회 생성 + 개발 완료 시 최종 1회만 갱신 (중간 갱신 금지)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-11 21:59:32 +09:00
4cee6c1f66
feat(frontend): 신규 5화면 SCR-13~17 — 경영분석·현장운영·전시일정·관리자·스타일가이드
...
- design.md v1.3: SCR-13~17 매핑·상세 스펙 순증 (기존 SCR-01~12 무수정)
- React 이식 5화면 + Recharts 도입 + chartColors(§1 토큰)·shared.css 공통 프리미티브
- App.tsx 라우트 5종 + AppShell NavLink 배선 (신규 4항목, /_styleguide 네비 비노출)
- QA: tsc 위양성 교정(tsconfig.app 기준)·미사용 import 제거 → tsc/vite build EXIT 0
- reviewer: 배포 가능(Critical/Major 0) — Minor 티켓 BACKLOG 등재, R15-01 홀 필터 배선 즉시 수정
- docs: UNDEVELOPED_BACKLOG.md 신설(세션 미개발 통합) + WORK_STATUS 갱신
- stitch: 재취득 4화면 + component_guide 2종 + _icons 7종
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-11 21:56:28 +09:00
58556ee1da
docs: WORK_STATUS.md — 작업 인수인계·요구사항 로그·현황·남은 큐·함정 (다른 PC 이어작업용)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-11 21:02:18 +09:00