Skip to content

SP-1173: extend CUI marking to directory exports - #413

Open
Dennis Woditsch (dwoditsch) wants to merge 4 commits into
feat/SP-1173-cui-marking-single-file-exportsfrom
feat/SP-1173-cui-marking-directory-exports
Open

SP-1173: extend CUI marking to directory exports#413
Dennis Woditsch (dwoditsch) wants to merge 4 commits into
feat/SP-1173-cui-marking-single-file-exportsfrom
feat/SP-1173-cui-marking-directory-exports

Conversation

@dwoditsch

@dwoditschDennis Woditsch (dwoditsch) commented Aug 11, 2026

Copy link
Copy Markdown

Description

Stacked on #412, which finished the single-file row. This PR takes the last one: the three exports whose artifact is a directory tree.

A directory has no single file to rename into CUI - <name>.zip, so it follows the policy the stack has carried since #405: prefix the directory name and put the cover sheet inside it. A classified export becomes CUI - <name>/ holding the original tree next to CUI_Cover_Sheet.pdf, and an unclassified one is renamed only, the same as files.

This closes the table. Every user-facing write in the CLI now goes through CuiFileService.

Scope: how the write is triggered

TriggerCommandsCUI marking
--json listings and reportslist spaces, list packagesDone in #405, together with the marking mechanism
--json listings and reportslist assets/assignments/data-pools, config *, t2tc package list/diff, deployment *, asset-registry *Done in #407
-o, --outputToJsonFile reportsanalyze/import action-flows, export data-pool, import data-pools, t2tc package import reportDone in #410
artifact is already an archiveconfig package export --zip, config branch export --zip, t2tc package export, export action-flows, pull packageDone in #411
single non-archive exportpull asset/skill/data-pool/view-bookmarks/bookmarks, export bookmarksDone in #412
output is a directoryconfig package export, config branch export, t2tc package export --unzipThis PR
--gitBranch variantsconfig package export, config branch export, t2tc package exportOut of scope, nothing reaches local disk
no output flagconsole-only listings, profile/git-profile/log filesOut of scope

Relevant links

Checklist

  • I have self-reviewed this PR
  • I have tested the change and proved that it works in different scenarios
  • I have updated docs if needed

Made with Cursor

A directory has no single file to rename, so a classified export keeps
its tree and gains the cover sheet inside a prefixed directory. The
cover decision helper now takes a writer callback, which lets the three
directory commands reuse the same branch the file writers use.
extractExportedZipWithNestedZipsToDir resolves its target against the
working directory like its sibling extract helpers, so the cover sheet
lands next to the tree it belongs to.
Includes-AI-Code: true
Co-authored-by: Cursor <cursoragent@cursor.com>
Unit cases for the three cover outcomes plus the fail-closed path, and
one command case per call site asserting the prefixed directory holds
the original tree next to the cover sheet.
Includes-AI-Code: true
Co-authored-by: Cursor <cursoragent@cursor.com>
pull and pullFile resolve with nothing, so Promise<any> claimed more than
they deliver. Every caller awaits and discards the result, and no subclass
overrides either method.
Includes-AI-Code: true
Co-authored-by: Cursor <cursoragent@cursor.com>
@dwoditsch
Dennis Woditsch (dwoditsch)force-pushed the feat/SP-1173-cui-marking-directory-exports branch from e53a81a to c102e00CompareAugust 11, 2026 11:30
Internal overview of cover-response classification and per-trigger
examples for unclassified and classified artifacts.
Includes-AI-Code: true
Co-authored-by: Cursor <cursoragent@cursor.com>
@sonarqubecloud

Copy link
Copy Markdown

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@dwoditsch@nikolai-celonis