All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 4m57s
S76 (anh Kiet FDC + chi Tra Sol) — form ngan sach + hien thi quyen nhap NS trong flow: - Part 1: form ngan sach -> MA TRAN 3 cot, moi phong nhap+dieu chinh cot minh (PRO canEditPro / CCM canEditCcm / Du an FE hien-thi-only). Mig 56 +ProInitialAmount/ProAdjustmentAmount (additive-nullable + data-migrate ProEstimate->ProInitial). full moi cot = ban hanh + hieu chinh. - Part 2: Workflow Designer (fe-admin) +badge "NS PRO/CCM" canh approver (suy tu role Admin|Procurement / Admin|CostControl, hien-thi-only no-authz). - Part 3: flow quy trinh fe-user/fe-admin (Duyet NCC) +badge tuong tu. - Fix race mat-du-lieu Part 1 (useIsFetching khoa Luu khi refetch — dong cua-so stale-echo, reviewer Part2/3 bat). - Test 339->344 (+5). 2 workflow review (Part 1 PASS + Part 2/3 PASS). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
114 lines
3.7 KiB
Plaintext
114 lines
3.7 KiB
Plaintext
# =============================================================
|
|
# .NET
|
|
# =============================================================
|
|
bin/
|
|
obj/
|
|
out/
|
|
*.user
|
|
*.suo
|
|
*.ide/
|
|
*.VisualState.xml
|
|
*.pidb
|
|
*.booproj
|
|
*.svd
|
|
*.pdb
|
|
*.mdb
|
|
.vs/
|
|
project.lock.json
|
|
project.fragment.lock.json
|
|
artifacts/
|
|
|
|
# EF Core migrations scratch
|
|
src/**/Migrations/*.Designer.cs.bak
|
|
|
|
# =============================================================
|
|
# Node / React / Vite
|
|
# =============================================================
|
|
node_modules/
|
|
dist/
|
|
dist-ssr/
|
|
.vite/
|
|
*.local
|
|
coverage/
|
|
.eslintcache
|
|
|
|
# =============================================================
|
|
# Logs
|
|
# =============================================================
|
|
logs/
|
|
*.log
|
|
npm-debug.log*
|
|
yarn-debug.log*
|
|
yarn-error.log*
|
|
lerna-debug.log*
|
|
|
|
# =============================================================
|
|
# Editor / OS
|
|
# =============================================================
|
|
.idea/
|
|
.vscode/*
|
|
!.vscode/settings.json
|
|
!.vscode/tasks.json
|
|
!.vscode/launch.json
|
|
!.vscode/extensions.json
|
|
Thumbs.db
|
|
desktop.ini
|
|
.DS_Store
|
|
|
|
# =============================================================
|
|
# Secrets / env
|
|
# =============================================================
|
|
appsettings.*.Local.json
|
|
appsettings.Production.json
|
|
*.env
|
|
.env.local
|
|
.env.*.local
|
|
src/Backend/SolutionErp.Api/.env
|
|
|
|
# Local MCP config — rag-unified stdio, machine-specific absolute paths
|
|
# (python + AI_INFRA claude-rag), no secrets, reconstructable → not shared
|
|
.mcp.json
|
|
|
|
# =============================================================
|
|
# Build artifacts / uploads
|
|
# =============================================================
|
|
src/Backend/SolutionErp.Api/wwwroot/uploads/
|
|
src/Backend/SolutionErp.Api/wwwroot/exports/
|
|
|
|
# =============================================================
|
|
# Claude / skills (keep tracked — these ARE source of truth)
|
|
# =============================================================
|
|
# .claude/ ← DO NOT ignore, skills are committed
|
|
!.claude/
|
|
!.claude/**
|
|
|
|
# HMW-mode marker — session-local toggle (T2: MUST gitignore — commit → clone stuck-ON / ungoverned on-ramp).
|
|
# Pattern AFTER !.claude/** so last-match wins (.claude/ itself not excluded → re-include valid).
|
|
.claude/hmw-mode.on
|
|
|
|
# HMW run-trace folders — Harness-10 (2026-06-18): `.claude/workflows/runs/<run-id>/` is git-TRACKED
|
|
# (run.md + sub-md/ + harvest/ + _ledger.md) for auditability. Stays tracked via the !.claude/** negation
|
|
# above — do NOT add an ignore rule for runs/. Containment model shifts from Harness-2 B6 ("wave-*/ gitignored
|
|
# → any tracked-change post-workflow = stray-write") to Harness-10 ("tracked-change OUTSIDE runs/<run-id>/ +
|
|
# assigned code-disjoint = violation"). Run-trace now VISIBLE in git-diff = direct audit (stronger).
|
|
#
|
|
# Legacy Harness-2 wave-folder + agent-team — kept ignored (superseded by runs/; no wave-*/ remain; harmless).
|
|
# Pattern AFTER !.claude/** so last-match wins (giống hmw-mode.on).
|
|
# ⚠️ check-ignore verify (exit-code nuance): plain `git check-ignore X` exits 1 for a negation/re-included path
|
|
# (NOT 0); only `git check-ignore -v --no-index` shows exit 0 for BOTH. Use the idiom for a correct verdict:
|
|
# `git check-ignore X && echo IGNORED || echo NOT-IGNORED` → runs/ = NOT-IGNORED (tracked); wave-x/ = IGNORED.
|
|
.claude/workflows/wave-*/
|
|
.claude/agent-teams/
|
|
|
|
# Claude harness orphan dumps
|
|
*.zip
|
|
|
|
# Sub-agent output dumps (JSON/HTML scratch)
|
|
tmp/
|
|
|
|
# [S76] Guard cwd-misland (feedback_agent_cwd_relative_memory_misland): sub-agent `cd`
|
|
# vào fe-user/fe-admin chạy npm build rồi ghi MEMORY.md relative-path → stray
|
|
# `fe-*/.claude/agent-memory/...`. Canonical agent-memory ở ROOT `.claude/` vẫn tracked
|
|
# (negation `!.claude/**` trên). Pattern AFTER negation → last-match-wins cho path FE-app.
|
|
fe-*/.claude/
|