Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
30af255
feat(wbs): add searchable hierarchy context
seonghobae Aug 28, 2026
4a008b2
fix(wbs): disable collapse during search
seonghobae Aug 28, 2026
0ab7b84
feat(wbs): add portable JSON download
seonghobae Aug 28, 2026
763a491
fix(wbs): model forced search ancestors
seonghobae Aug 28, 2026
93b1ad5
Merge branch 'feat/wbs-search-context' into feat/json-export
seonghobae Aug 28, 2026
105ec1c
docs: refresh verification count
seonghobae Aug 28, 2026
ff442e0
test(wbs): prove search stays ephemeral
seonghobae Aug 28, 2026
d24689e
test(wbs): expose filtered interaction hazards
seonghobae Aug 28, 2026
af70cd8
fix(wbs): guard filtered edit and reorder interactions
seonghobae Aug 28, 2026
6ca301a
fix(wbs): preserve planning fields in JSON export
seonghobae Aug 28, 2026
7603c8c
fix(wbs): load search interaction guardrails
seonghobae Aug 28, 2026
054fb4d
Merge remote-tracking branch 'origin/feat/wbs-search-context' into fe…
seonghobae Aug 28, 2026
1335531
test(wbs): seed persistence state before search check
seonghobae Aug 28, 2026
ad816e1
Merge remote-tracking branch 'origin/feat/wbs-search-context' into fe…
seonghobae Aug 28, 2026
7628747
docs: refresh WBS verification evidence
seonghobae Aug 28, 2026
aa5abaf
test(wbs): reproduce hidden create editor under search
seonghobae Aug 28, 2026
7939e00
fix(wbs): block hidden create anchors during search
seonghobae Aug 28, 2026
fef17cb
fix(wbs): guard filtered hierarchy interactions
seonghobae Aug 28, 2026
6053b90
Merge remote-tracking branch 'origin/feat/wbs-search-context' into fe…
seonghobae Aug 28, 2026
89bafc0
Merge remote-tracking branch 'origin/feat/wbs-search-context' into fe…
seonghobae Aug 28, 2026
abbdff9
test(wbs): align guarded actions with explanatory controls
seonghobae Aug 28, 2026
50dede2
test(wbs): use DOM dispatch for guarded controls
seonghobae Aug 28, 2026
52da070
Merge remote-tracking branch 'origin/feat/wbs-search-context' into fe…
seonghobae Aug 28, 2026
0d7901e
fix(wbs): block deletes while filtered
seonghobae Aug 28, 2026
24726fb
fix(wbs): block deletes while filtered
seonghobae Aug 28, 2026
c6301a1
Merge remote-tracking branch 'origin/feat/wbs-search-context' into fe…
seonghobae Aug 28, 2026
4f13308
feat(wbs): add first-visit sample onboarding
seonghobae Aug 28, 2026
41979ec
fix(wbs): hide onboarding while searching
seonghobae Aug 28, 2026
53c7d32
docs: clarify sample sync onboarding
seonghobae Aug 28, 2026
e47d6de
test(a11y): retain visual accessibility evidence
seonghobae Aug 29, 2026
50c6d07
fix(wbs): clear stale search and seed state
seonghobae Aug 29, 2026
88f31d4
test(cloud): cover active plan replacement
seonghobae Aug 29, 2026
d1ed68a
docs(quality): record coverage readiness gap
seonghobae Aug 29, 2026
b130c4f
test(coverage): merge browser and node reports
seonghobae Aug 29, 2026
5ae5fef
test(coverage): include all server modules
seonghobae Aug 29, 2026
158300b
docs(quality): record merged coverage evidence
seonghobae Aug 29, 2026
c4660e9
test(coverage): support portable report paths
seonghobae Aug 29, 2026
87ed563
fix(onboarding): preserve notice after failed save
seonghobae Aug 29, 2026
2cdd197
docs(quality): refresh coverage snapshot
seonghobae Aug 29, 2026
2c0466c
test(cloud): cover sprint and baseline metrics
seonghobae Aug 29, 2026
33ea978
test(cloud): cover management workflows
seonghobae Aug 29, 2026
059226d
docs(quality): refresh cloud coverage evidence
seonghobae Aug 29, 2026
b8c188b
fix(planner): preserve cloud task data
seonghobae Aug 29, 2026
2e57f02
docs(quality): refresh coverage snapshot
seonghobae Aug 29, 2026
7112323
test(coverage): include complete regression suites
seonghobae Aug 29, 2026
8cb3eb4
docs(quality): record complete-suite coverage
seonghobae Aug 29, 2026
bce21b4
test(coverage): exercise planner edge paths
seonghobae Aug 29, 2026
e234794
docs(quality): record edge-path coverage
seonghobae Aug 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions .github/workflows/visual-accessibility-evidence.yml
Comment thread
seonghobae marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Visual Accessibility Evidence

on:
pull_request:
push:
branches: [develop]

permissions:
contents: read

concurrency:
group: visual-accessibility-evidence-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
browser-evidence:
runs-on: ubuntu-latest
steps:
- name: Checkout exact revision
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{ github.event.pull_request.head.sha || github.sha }}
persist-credentials: false

- name: Verify exact checkout
env:
EXPECTED_CHECKOUT_SHA: ${{ github.event.pull_request.head.sha || github.sha }}
run: |
set -euo pipefail
actual_sha="$(git rev-parse HEAD)"
test "$actual_sha" = "$EXPECTED_CHECKOUT_SHA"

- name: Setup Node 22.13
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
with:
node-version: 22.13.0

- name: Install
run: npm ci

- name: Install Playwright (chromium)
run: npx playwright install chromium --with-deps

- name: Capture visual and accessibility evidence
run: npm run test:e2e -- tests/e2e/visual-accessibility-evidence.spec.js

- name: Preserve visual accessibility evidence
if: ${{ always() }}
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: scopeweave-visual-accessibility-${{ github.run_id }}-${{ github.run_attempt }}
path: test-results
if-no-files-found: error
retention-days: 3
5 changes: 4 additions & 1 deletion ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
- `toast-state.css`: cloud overlay `.toast.visible` rendering so SaaS
status messages stay visually observable.
- `app.js`: state, rendering, editing, validation, persistence,
import/export, and Gantt logic.
import/export, WBS filtering, and Gantt logic.
- `analytics.js`: EVM, S-curve, CPM, workload, cost, and requirements/RFI/RFP
WBS-estimation readiness analysis.
- `wbs.json`: seed data in the user-specified JSON array format.
Expand All @@ -35,6 +35,9 @@
optional File System Access API sync for `wbs.json` where supported.
- Static hosting treats repository `wbs.json` as seed data;
export/manual save remains the portability path.
- A first seed-only visit exposes an accessible onboarding notice; its dismissal
marker is separate from the planner payload, while confirmed clearing persists
an empty `tasks` array through the normal `renderAll()` and autosave path.
- Imported flat JSON may synthesize hierarchy wrapper nodes internally,
but external `wbs.json` sync strips synthetic rows so the saved array
stays in the requested user schema.
Expand Down
21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Added

- Added accessible WBS field search with hierarchy context and an empty-result
recovery action.
- Added planning-field search coverage and safe state reset when Cloud or file
imports replace the current plan.
- Kept first-visit sample guidance visible when local persistence fails.
- Added browser JSON download for portable WBS backups, including extended
planning fields, alongside CSV export.
- Added first-visit sample WBS onboarding with persistent dismissal and a
confirmed clear-to-empty-plan action.
- Added search-mode guardrails that keep hierarchy edits and drag reordering
out of the filtered view while an inline editor is open.
- Added deterministic PM analysis for requirements/RFI/RFP readiness, WBS
estimation coverage, dependency risk, and procurement package section checks.
- Preserved PM-analysis research papers, NASA WBS handbook, BCP 14, and JSON
Expand All @@ -19,6 +30,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Added workflow ownership regression coverage so central review
workflows stay inherited from `ContextualWisdomLab/.github`, not copied
into this repository.
- Added exact-head Node/Chromium coverage collection and report merging; the
remaining uncovered paths still block a 100% frontend/backend claim.
- Made the canonical coverage run execute the complete unit and API suites so
existing pure-logic and server regression evidence is included in the merged report.
- Added browser regression coverage for empty-plan actions, unsupported file sync,
filtered hierarchy protection, collapse/expand, and oversized CSV rejection.
- Added browser coverage for cloud sharing, sprint burndown, attachments,
search, team administration, project creation, and sample onboarding flows.

### Security

Expand All @@ -30,6 +49,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Replaced dynamic and lazy-regex MS Project XML block extraction with bounded
linear scans to prevent pathological backtracking on malformed imports.
- Rejected non-string password candidates at the authentication boundary.
- Fixed cloud login and team modal close controls when their nested icon is
clicked.
- Added regression coverage that prevents array-valued passwords from being
coerced into valid credentials.
- Updated Hono runtime dependencies to patched supported releases.
Expand Down
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ two modes:
subtree reorder
- Automatic day, weight, planned progress, actual progress, and weighted
progress calculations
- CSV import/export using the screen column contract
- WBS search across task fields with matching hierarchy context
- First-visit sample WBS guidance with dismissible notice and clear-to-empty-plan action
- JSON/CSV export and CSV import using the screen column contract
- Local autosave with optional File System Access API sync to `wbs.json`
- Weekly Gantt modal with planned (`#333333`) and actual (`#34cb03`) overlays
- Responsive column reduction for screens under 800px
Expand Down
Loading
Loading