diff --git a/docs/CURRENT/AEG-X-002_TYPECHECK_EMIT_REMEDIATION.md b/docs/CURRENT/AEG-X-002_TYPECHECK_EMIT_REMEDIATION.md new file mode 100644 index 00000000..c0fc2f40 --- /dev/null +++ b/docs/CURRENT/AEG-X-002_TYPECHECK_EMIT_REMEDIATION.md @@ -0,0 +1,25 @@ +# AEG-X-002 — Frontend Typecheck Emit Remediation + +- **WBS / Requirement:** AEG-X-002 / REQ-PLAT-TOOL +- **Classification:** behavior-preserving frontend toolchain refactoring +- **Selected on:** 2026-08-08 + +## Source / Assumption / Unknown / Decision Required + +- **Source:** `frontend/package.json`, `frontend/tsconfig.json`, and the tracked `*.vue.js` changes produced by the current build command. +- **Assumption:** Vite, not TypeScript, is the approved JavaScript production emitter. Type checking must not modify tracked source-adjacent JavaScript files. +- **Unknown:** none for this local toolchain correction. +- **Decision Required:** none. The command retains the same type validation and Vite production build; it removes only unintended TypeScript emit. + +## Change + +- Replace `vue-tsc -b && vite build` with `vue-tsc --noEmit && vite build`. + +## Acceptance Evidence + +- `pnpm build` completed successfully on 2026-08-08; the preserved output is `evidence/AEG-X-002/frontend-build-noemit_20260808.log`. +- Before/after SHA-256 comparison of the previously dirtied tracked `*.vue.js` files found no changed file after the no-emit build. +- Full frontend regression was executed before this command-only change: 26 files / 57 tests passed. +- The build still reports a 501.14 kB gzip initial JavaScript chunk. It is recorded as a separate performance concern, not hidden by changing Vite's warning limit. + +No provider, API, schema, runtime configuration value, policy, or feature semantics changes. diff --git a/docs/CURRENT/CATALOGS/WBS_PROGRESS_TRACKER.csv b/docs/CURRENT/CATALOGS/WBS_PROGRESS_TRACKER.csv index dac85fd0..e363a93e 100644 --- a/docs/CURRENT/CATALOGS/WBS_PROGRESS_TRACKER.csv +++ b/docs/CURRENT/CATALOGS/WBS_PROGRESS_TRACKER.csv @@ -1,6 +1,6 @@ WBS_ID,Sprint,Slice_ID,Task,Status,Completion_Date,Evidence_Link,Owner,Notes AEG-X-001,S0,Cross,Version Coverage Matrix 고도화,COMPLETED,2026-08-04,docs/contracts/platform/VERSION_COVERAGE_MATRIX.md,PM/Architect,"✅ Version matrix: v10/v12/v12.1 compatibility (Retained/Improved/Superseded 100%), Supersession registry, Breaking change assessment, Migration roadmap" -AEG-X-002,S0,Cross,global.json 고도화,COMPLETED,2026-08-04,.gitea/workflows/ci.yml (dotnet/pnpm restore/build/test),DevOps,"✅ CI pipeline validates: dotnet restore/build/test (Release config), pnpm frozen install/build/e2e, PostgreSQL 17 health checks, Log output to .gitea/workflows/ci.yml" +AEG-X-002,S0,Cross,global.json 고도화,COMPLETED,2026-08-08,".gitea/workflows/ci.yml (dotnet/pnpm restore/build/test); docs/CURRENT/AEG-X-002_TYPECHECK_EMIT_REMEDIATION.md; evidence/AEG-X-002/frontend-build-noemit_20260808.log",DevOps,"2026-08-08: behavior-preserving frontend toolchain regression remediated. `pnpm build` now executes `vue-tsc --noEmit && vite build`; actual build passed and before/after hashes of previously dirtied tracked *.vue.js files were unchanged. Full frontend regression: 26 files / 57 tests passed before this command-only change. Build retains a 501.14 kB gzip chunk warning; no performance pass is claimed." AEG-X-003,S0,Cross,Architecture tests 고도화,COMPLETED,2026-08-04,tests/KArtSell.ArchitectureTests/RepositoryRulesTests.cs (6 tests PASSING),Architect/QA,"✅ Architecture rules enforced: (1) No prohibited patterns, (2) Domain isolation from infrastructure, (3) SQL validation (no SELECT *, schema-qualified), (4) Endpoint authorization (Roles/Policies), (5) No placeholder files, (6) No duplicate aggregate IDs. All 6 tests PASS." AEG-X-004,S0,Cross,DbUp 복구 rehearsal 고도화,COMPLETED,2026-08-06,"docs/CURRENT/AEG-X-004_DBUP_EVIDENCE.md; docs/CURRENT/AEG-X-004_STATUS_CONTRACT_SLICE.md; db/migrations/0032_shadow_run_queued_status_contract.sql; tests/KArtSell.Integration.Tests/DbUpMigrationTests.cs; tests/KArtSell.Integration.Tests/DbUpRecoveryTests.cs; evidence/AEG-X-004/0032-isolated-migration.trx",DBA/BE,"✅ Queued status contract applied as append-only 0032; isolated kartsell_migration_test rehearsal targeted 1/1 and recovery 6/6 passed. kartselldb_test was not reset. Production migration/DBA approval and Phase 1 requeue remain unclaimed. ⚠️ 2026-08-07 regression: 12 DbUpMigrationTests (Migration0008/0009/0010/0032) now fail locally with Postgres 42501 'must be owner of database kartsell_migration_test' — the kartsell DB user no longer owns/can DROP+CREATE that database on this environment. Code-side (fix/dapper-underscore-mapping-and-build branch) is unaffected; this needs a DBA grant (ALTER DATABASE kartsell_migration_test OWNER TO kartsell, or equivalent) before the fresh/upgrade/re-run rehearsal can be re-verified." AEG-X-005,S0,Cross,Security auth 고도화,COMPLETED,2026-08-04,"docs/decisions/ADR-SEC-001.md + tests/KArtSell.Integration.Tests/SecurityAuthenticationTests.cs (6 tests)",Security/BE,"✅ ADR-SEC-001 produced (OIDC/JWT/DevelopmentHeader tiers), SecurityAuthenticationTests.cs (6 tests): endpoint authorization, DevelopmentHeader mode check, secret logging prevention, secret hardcoding check, AI prompt PII, auth config validation. Acceptance_Evidence verified: '비개발 무인증 접근 0, secret/log/prompt 노출 0'" diff --git a/evidence/AEG-X-002/frontend-build-noemit_20260808.log b/evidence/AEG-X-002/frontend-build-noemit_20260808.log new file mode 100644 index 00000000..3a9e2753 --- /dev/null +++ b/evidence/AEG-X-002/frontend-build-noemit_20260808.log @@ -0,0 +1,19 @@ + +> kartsell-frontend@0.1.0 build D:\JobRoomz\KArtSell.Aegis\frontend +> vue-tsc --noEmit && vite build + +vite v8.2.0 building client environment for production... + +transforming...✓ 538 modules transformed. +rendering chunks... +computing gzip size... +dist/index.html 0.39 kB │ gzip: 0.26 kB +dist/assets/index-Btzeda_z.css 28.11 kB │ gzip: 5.46 kB +dist/assets/index-ViDeaTMv.js 1,837.78 kB │ gzip: 501.14 kB + +✓ built in 1.54s +[plugin builtin:vite-reporter] +(!) Some chunks are larger than 500 kB after minification. Consider: +- Using dynamic import() to code-split the application +- Use build.rolldownOptions.output.codeSplitting to improve chunking: https://rolldown.rs/reference/OutputOptions.codeSplitting +- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit. diff --git a/frontend/package.json b/frontend/package.json index fadcdeb6..e1d7629e 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -6,7 +6,7 @@ "packageManager": "pnpm@10.0.0", "scripts": { "dev": "vite", - "build": "vue-tsc -b && vite build", + "build": "vue-tsc --noEmit && vite build", "typecheck": "vue-tsc --noEmit", "test": "vitest run", "e2e": "playwright test"