Skip to content

[pull] main from CPAtoCybersecurity:main - #32

Merged
pull[bot] merged 4 commits into
ericrihm:mainfrom
CPAtoCybersecurity:main
Jul 21, 2026
Merged

[pull] main from CPAtoCybersecurity:main#32
pull[bot] merged 4 commits into
ericrihm:mainfrom
CPAtoCybersecurity:main

Conversation

@pull

@pull pull Bot commented Jul 21, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

…th reference attach

The first user-visible surface of the platform-procedures program. A new
step 2 in the New Assessment wizard declares which platforms an assessment
covers and attaches CISA SCuBA configuration checks as references through
the PR-5 compose machinery.

- src/utils/infraPresets.js: org-profile presets promoted with ids added
  alongside labels; the label stays the persisted token, so saved profiles
  and stack tailoring are untouched. platformIdsFromInfrastructure seeds
  the Environment step from the saved profile (pure read).
- Environment step: subcategory-by-platform selection matrix in CSF
  canonical order with exact offer counts, a labeled select-all per
  platform column, and nothing attached by default. The user is the only
  exclusion actor: a checked cell attaches every one of its offers (the
  PR.DS-10 attractor keeps all 122), an unchecked cell shows its count.
  The org profile seeds chip state and is never written back; the
  assessment persists the DERIVED platform set of what actually attached.
- Attach path: handleCreateAssessment routes every bank-covered item
  through wizardAttachObservation, which composes trunk + references when
  offers are selected and reproduces the plain community attach
  byte-for-byte when none are.
- Store v16: platforms on every assessment (empty for records that
  predate the step), normalized at the producers and unconditionally on
  the restore path, since bulk setters bypass the load-time migrate.
- Share registry: platforms declared SHARE — the field is derived from
  attached checks, which a share already names in its expanded addendum
  headers.

1100 tests green (57+3 suites). Verified live in Chrome: seeding, reset,
matrix selection, create, detail-panel expansion with attribution, and
CSV export carrying the addenda.
…step

Add the wizard Environment step: per-assessment platform selection with reference attach
Post-create management of platform-check addenda in the assessment detail
panel, closing the wizard's attach-only gap: a per-addendum badge row
(drift + unresolved + upstream source links) and a picker that attaches,
removes, and adopts upstream updates per check.

One pure producer (pickerObservationUpdate) performs every composition
write: it rewrites platformProcedures and re-records the
procedureSource.components recipe together in canonical committed-map
order, heals legacy no-recipe observations on first write, and passes
untargeted entries through verbatim - only add mints a reference and only
the explicit adopt action (after a confirm showing old vs new
fingerprints) rewrites a stored contentHash. Removal deletes from the
live array and the recipe together; Reset replays the re-recorded recipe
and cannot resurrect a removed addendum. The assessment platforms array
is recomputed from the live observations after every composition-changing
write - derived in both directions, never incrementally mutated.

Expansion output stays drift-silent permanently: rendered and exported
text always carries the current corpus version; drift surfaces only as
badge chrome whose remedy is the picker's adopt action.
Add provenance badges, drift surfacing, and the platform-check picker
@pull pull Bot locked and limited conversation to collaborators Jul 21, 2026
@pull pull Bot added the ⤵️ pull label Jul 21, 2026
@pull
pull Bot merged commit b052df7 into ericrihm:main Jul 21, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant