Skip to content

feat(cli): add interactive scan publication presentation - #455

Merged
daneschneider-oai merged 93 commits into
mainfrom
dev/kyleb/linear-publish-presentation
Aug 16, 2026
Merged

feat(cli): add interactive scan publication presentation#455
daneschneider-oai merged 93 commits into
mainfrom
dev/kyleb/linear-publish-presentation

Conversation

@kmbroai

@kmbroai kmbroai commented Aug 15, 2026

Copy link
Copy Markdown
Collaborator

Summary

Make completed-scan publication clear and responsive with an aligned interactive selector, live terminal progress, and concise human-readable completion summaries.

Changes

  • Render completed scans in aligned repository, findings, age, and abbreviated scan-ID columns.
  • Exclude deleted, replaced, inaccessible, or symlinked scan directories before computing aligned picker columns.
  • Compute terminal display widths correctly for ANSI styling, CJK text, combining characters, emoji, flags, and keycaps.
  • Preserve actual terminal width so selected scans only wrap when the real terminal requires it.
  • Show relative scan ages, emphasized repository names, and repository-safe sanitized terminal output.
  • Collapse the selected scan to its repository and abbreviated scan ID instead of repeating the complete padded picker row.
  • Summarize completed publications with up to five safe, clickable Linear issue links and created/failed totals derived directly from persisted database records.
  • Preserve JSON, explicitly requested structured formats, dry-run output, and partial-failure exit codes.
  • Open a publication-specific full-screen dashboard that streams actual Codex reasoning and verified Linear issue progress.
  • Keep JSON stdout machine-readable while directing interactive progress to stderr.
  • Restore full-screen terminal state before printing sanitized receipt warnings, while retaining successful database-backed publication results.
  • Restore terminal state on failures and interrupts, support CI and noninteractive fallbacks, and redact source-bearing local handoff commands.
  • Restore the full-screen dashboard immediately on SIGINT or SIGTERM, then await process-tree shutdown and database-backed recovery before exiting 130 or 143.
  • Extend existing CLI, dashboard, terminal, and real database-backed integration coverage without fabricated mock-only batching or persistence claims.

Testing

  • Publication, CLI, picker, receipt warnings, sealed-contract, dashboard, cancellation, and real SQLite integration regressions: 314 passed with 3,172 assertions across 10 files.
  • Focused presentation, terminal interruption, real-directory picker, and repository-discovery regressions: 49 passed with 642 assertions.
  • Real terminal tests verify screen restoration precedes cancellation while the command waits for recovery, preserves clean stdout, and returns the correct signal-specific exit code.
  • Real pseudo-terminal sessions verified Unicode-aligned menus, compact selected answers, first-five issue summaries, missing links, partial-failure exit codes, JSON purity, and color-disabled output without contacting Linear.
  • Complete randomized SDK suite before the focused test-only consolidation: 1,238 passed, 10 platform-specific skips, 0 failures, and 8,484 assertions.
  • Built, packed, installed, and validated the stacked package under Node 22, including the real CLI publication dry run.

Risk and rollout

  • Presentation changes are separated from the CLI command, durable publisher, and publication persistence.
  • Human output omits internal scan, finding, team, and project identifiers and rejects unsafe or non-Linear issue URLs.
  • Full-screen and plain progress never expose issue descriptions or source-bearing handoff commands.
  • Stacked on the existing completed-scan publication CLI PR.
  • Inherits the independently verified, fail-closed Windows Node 22 sealed-file fix from its CLI base; the presentation-only pull-request diff remains unchanged.

Public disclosure review

  • No customer, partner, prospect, or user identities, data, or identifying details are included.
  • No credentials, personal data, private source, scan findings, or nonpublic links or tickets are included.
  • I reviewed the branch name, title, description, commits, changes, comments, logs, screenshots, attachments, and links for public disclosure.

kmbroai added 30 commits August 15, 2026 05:59
kmbroai added 23 commits August 15, 2026 22:56
# Conflicts:
#	sdk/typescript/README.md
#	sdk/typescript/src/cli.ts
# Conflicts:
#	sdk/typescript/scripts/check-package.mjs
# Conflicts:
#	sdk/typescript/scripts/check-package.mjs
Base automatically changed from dev/kyleb/linear-publish to main August 16, 2026 01:20
@daneschneider-oai
daneschneider-oai dismissed wholley-oai’s stale review August 16, 2026 01:20

The base branch was changed.

@github-actions github-actions Bot added the enhancement New feature or request label Aug 16, 2026
@daneschneider-oai
daneschneider-oai merged commit 0fb8daf into main Aug 16, 2026
33 checks passed
@daneschneider-oai
daneschneider-oai deleted the dev/kyleb/linear-publish-presentation branch August 16, 2026 01:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants