Skip to content

Epic: terminal workflow initiative (make one command's result useful for the next) #359

Description

@raiseCatError

Terminal workflow initiative

Make the result of one command useful for the next without taking execution control away from the user. NMSh owns the interaction/presentation layer over the real persistent zsh, Bash and Fish shell.

Canonical design: docs/design/terminal-workflow.md. Development ledger: docs/development/workflow-initiative-ledger.md on the workflow feature stack. Draft PR ≠ merged, released or physically validated. Always verify current heads.

Dependency/PR map

#345 release/v0.18.0 (base: master)
  └─ #348 input awareness [draft]
       └─ #357 command queue [draft]
            └─ #358 copy picker, block controls and Smart Folding [draft]
                 └─ #360 Copy as Report [draft]
                      └─ #361 Compare Output [draft]
                           └─ feature/expressive-activity-vocabulary [data-only branch; no PR]

Related independent PRs: #347 (managed agent workspace) and #349 (notice wrapping) build on #345. #329/#342/#343/#344/#346 are included in the #345 release stack; do not close or rebase them merely to tidy the list. Confirm merge/closure policy first.

Delivery status and owners

Phase A — interactive and copy foundations

Phase B — reusable command information

Phase C — reuse and staging

Phase D — selective ecosystem integration

Companion platform/identity work (separate scope)

Phase E — integration and physical QA

  • Check stacked PR branch ancestry and base targets; no force-push or mistaken PR auto-closures.
  • Full unit, typecheck, cross-shell real PTY, security and CI verification.
  • Narrow/NO_COLOR/Safe, host input ownership, folding/copy/queue/compare and restored transcripts.
  • Reviewed integrated QA branch/captures and honest limitations before merge.
  • Human approval required to merge to master, tag or publish.

Product constraints

  • No automatic execution from generated/copied/pasted/output-derived text; staging and queue review remain explicit.
  • No always-on clipboard-content history or automatic remote transmission.
  • Avoid permanent chrome, settings explosion, a second shell/multiplexer, and blanket ports of upstream modules.
  • No arbitrary workspace-supplied code execution in context discovery; documented, permissioned capabilities only.
  • Incremental, reviewable PRs with a clear owner for each unfinished feature.

Activity

  1. raiseCatError commented on Oct 11, 2026

    @raiseCatError
    OwnerAuthor

    Stabilization track started. Current published topology is unchanged: #345 → #348 → #357 → #358 → #360 → #361, with #367 and #368 as siblings. #369/#370 remain independent on #345. Existing worktrees are preserved; fixes are developed on uniquely named branches in nmsh-astra- worktrees.

    Ownership: this track owns workflow/input routing in src/app/TerminalApp.ts until a tested stabilization checkpoint is posted here. Native-runtime and workspace work should keep using its separate branches and handoff documentation. #370 is the canonical native-runtime owner; any security patch to the duplicate in #368 will be reconciled at integration.

    Initial CI evidence: #357 run 38071796100 fails Ubuntu Fish read input and typing-after-read tests. #368 run 38071808042 also fails Fish paste syntax, guide coverage, asynchronous batch/recipe assertions, and some live input tests. These are being investigated independently; no failures are being dismissed as flakes. No shared-file freeze or integration readiness is claimed yet. No merge to release/master is authorized.

  2. raiseCatError commented on Oct 11, 2026

    @raiseCatError
    OwnerAuthor

    Workflow stabilization progress; this is not the frontend freeze checkpoint.

    • Published Input awareness: show when a command is waiting for you #348 head: 684a3fbc837be97f185cc938f4fb13cbccf1533b, Actions 38122464924 succeeded. Its authenticated Fish reader handover is additive and does not change answersByDefault.
    • Local additive candidates: input 991f299c8aebf11e76193cd10ebc161c6f7a5662, queue 97e427079971a5c214c0601279f957c5e353e10a, output references/workflows 3097cbbfe98faac0eb0ea1a33897d4e5dc53ef92, vocabulary sibling d4619e4d719f912b7c8a71374a33012dbab175b9. Final publication/CI is pending; these are not advertised as green branch heads.
    • Reattach testing found host canonical echo during slow journal startup. The input candidate establishes raw input before probing/journaling and excludes running/startup input from key diagnostics. A real hidden Fish reader survives detach and slow-journal attach without exposing the answer.
    • Fish 3.7 parse-only checks on Ubuntu rejected Node's socket-backed stdin (Unable to read input file: Is a directory). Workflow verification now passes script data through --no-execute -c. Sentinel tests verify that neither commands nor substitutions execute.
    • Ubuntu 24.04 arm64, Fish 3.7, Bash 5.2, zsh 5.9 and Node 26.10: queueConditionsLive, pasteBatch, clipsLive, copyReportLive, compareOutputLive, inputPrivacy, moduleExplain, moduleManagerUx passed at the original deadlines. Earlier reader/queue/detach regressions also passed on Linux. This is headless verification, not physical terminal QA or the final amd64 Actions gate.
    • Remaining additions are implemented locally: bounded ephemeral clips, opt-in macOS clipboard change-count hints without background content reads, history-selected command pins, F8/Shift+F8 failure navigation, preview/cancel import regressions, and factual module source/cache/timing diagnostics. Diagnostic refinements and a Setup fixture readiness correction are currently uncommitted.
    • Full local verification remains a gate. One run passed all functional tests but failed the ranking deadline; another passed ranking but failed configured-completion startup and a Setup fixture that bypassed shell readiness. The completion file passed separately at unchanged deadlines; Setup now explicitly waits for readiness and verifies that blocked startup owns Enter. The current full run has also reported a Fish reader failure; its detailed failure is still being collected. No reproducible failure is dismissed as a flake.

    TerminalApp.ts remains under stabilization ownership. Please continue independent native/workspace work and preserve the existing frontend boundary. No workflow merge to master/release or integration of unfinished feature heads is authorized. A separate exact-head/CI freeze checkpoint will follow after the remaining gates pass.

  3. aarrtH8 commented on Oct 11, 2026

    @aarrtH8

    Bonjour — dans raiseCatError/notMyShell, scripts/demos/render.mjs:110 et src/ask/configAssist.ts:164 passent une entrée à un shell : motif à vérifier. Analyse statique, code non exécuté — motif, pas faille confirmée. Utile ? je détaille ; sinon j'ignore, sans relance.

  4. raiseCatError commented on Oct 11, 2026

    @raiseCatError
    OwnerAuthor

    Workflow stabilization progress; the shared frontend is not frozen.

    • Current additive candidates: input fix/workflow-cedar at 9465eb5; queue fix/workflow-birch at 8b25ad0; copy fix/workflow-amber at 05f8b03; report fix/workflow-coral at 768183b; compare fix/workflow-indigo at ce6f2f5; vocabulary sibling fix/workflow-willow at 0b2e886; output references/workflow fix/workflow-maple at 5756f7c. These candidates are local; their final publication and exact-head Actions gates are pending.
    • The combined workflow revealed three deterministic multiline-queue fixture failures: the optional batch action changed the expected paste-review footer. Correction 4636672 accepts that action while retaining whole-paste insertion, explicit queueing, same-shell state and once-only journal assertions. The original failure reproduced and corrected zsh/Bash/Fish real-PTY cases passed.
    • Security follow-ups: 5570d34 sanitizes restored labels in the comparison chooser header and makes invisible controls visible in authored review UI; 25af5ba keeps restored report status literal in Markdown. Focused unit and actual stand-in clipboard PTY regressions passed. Final cross-feature CI remains a gate; redaction remains best-effort.
    • Temporary resources disappeared during continuations, interrupting full runs; those runs are not passing evidence. Committed work was preserved. All owned worktrees, logs, VM disks and verification temporary storage now reside on T7 Shield, under neutral tree/color names.
    • Storage correction 9465eb5 adds explicit test-root selection, removes hardcoded fixture temp writes and makes optional key diagnostics respect the selected temporary directory. Typecheck, the affected lifecycle/privacy/platform/model tests and verify:fast pass. Full input canonical verification is running; the Ubuntu/Fish 3.7 VM is being prepared from the exact committed workflow head.
    • The other track's handoff remains unchanged. Native runtime additions still belong to Native modules: Ruby, PHP, .NET, Swift, Zig and Deno (#364) #370; the patched Ruby/PHP overlap is documented for eventual deliberate acceptance integration.

    No master/release merge or frontend freeze is claimed. Physical terminal QA remains outstanding.

  5. raiseCatError commented on Oct 11, 2026

    @raiseCatError
    OwnerAuthor

    Workflow stabilization update; the shared frontend remains not frozen.

    Published input head 86fb4e4 passed direct typecheck, full macOS canonical verification and Actions 38150534791: Ubuntu/macOS shards, Quality, Node 22 and aggregate checks. Timing/Fedora were skipped on the PR event.

    The combined workflow passed full Ubuntu 24.04 arm64 / Fish 3.7.0 / Node 26.10 canonical verification at 5e45e87e633746ee18263619e4438d834befef5c, including the unchanged suggestion timing threshold. This supersedes the failed run at 5756f7c.

    A later queue canonical run at f081c42 failed its initial nested-path candidate assertion after about 1.5 seconds. Controlled slow completion initialization reproduces a bounded empty result and transport cleanup. Correction 566c321 keeps the production deadlines, prepares fixture-owned completion caches for functional path/cache assertions, and adds expiry/recovery coverage. It also gives test children a private home inside the selected temporary root, preventing home-relative shell caches from writing to the host home. The new home-isolation regression failed before the fix; affected lifecycle/completion checks and verify:fast passed after it.

    Current local additive candidates:

    • input: fix/workflow-cedar / 566c3219f9aada4186cf22f14cbcdfee5f5ca3f7
    • queue: fix/workflow-birch / 2dd8b8077b80c7b573eb4198a0c97c2ba1e78986
    • copy: fix/workflow-amber / 443eed588d04c36eb52c81a1482e192e6ea5ab03
    • report: fix/workflow-coral / 26a2a7f79fb42d0cb63e933b88ed001c7848d5a0
    • compare: fix/workflow-indigo / c6d75148f8a2c7c42bbd18d7452a50647b4ead4c
    • vocabulary sibling: fix/workflow-willow / cd20d8a5c93d4c7fbf6d24c850b9fc57dc7c0bbf
    • workflow: fix/workflow-maple / 895aae5f8739bdb394b2dc99870451050e6ea19c

    Canonical verification is running again on these exact candidates, with tmux/screen installed in the disposable Ubuntu VM for previously skipped multiplexer cases. These new candidates are not yet published or advertised as green CI heads.

    PR descriptions now distinguish historical checks from pending candidate gates and use Refs for issues needing physical QA. The other track's branches/handoff and the main checkout remain unchanged. No master/release merge, frontend freeze or physical validation is claimed.

  6. raiseCatError commented on Oct 11, 2026

    @raiseCatError
    OwnerAuthor

    @aarrtH8

    7. Bonjour — dans raiseCatError/notMyShell, scripts/demos/render.mjs:110 et src/ask/configAssist.ts:164 passent une entrée à un shell : motif à vérifier. Analyse statique, code non exécuté — motif, pas faille confirmée. Utile ? je détaille ; sinon j'ignore, sans relance.

    🇫🇷 Français

    Salut, merci beaucoup pour le signalement ! J'ai regardé les deux emplacements sur la branche master actuelle, mais aucun ne semble transmettre directement des données non fiables à un shell. Cela dit, je n'ai pas encore exclu de problèmes dans les chemins d'exécution associés.

    Si tu as plus de détails, notamment sur le chemin entre l'entrée et l'exécution, ou un scénario d'injection potentiel, ça m'intéresse ! Je serais ravi d'examiner ça plus en détail. Merci encore d'avoir pris le temps de regarder le projet !


    🇬🇧 English

    Hey, thanks for flagging this! I took a look at both locations on the current master branch, but neither appears to directly pass untrusted input to a shell. That said, I haven't ruled out issues in the surrounding execution paths.

    I'd appreciate more details if you have them, particularly the source-to-sink path or a potential injection scenario. Happy to investigate further, and thanks again for taking the time to look through the project!

  7. raiseCatError commented on Oct 11, 2026

    @raiseCatError
    OwnerAuthor

    Workflow stabilization checkpoint in progress; TerminalApp.ts is not frozen.

    The latest full runs remain recorded as failures:

    • macOS queue 2dd8b80: the same-shell fixture outlived its fixed holding sleep; the interrupt fixture signalled before actual foreground ownership; two frontend startups produced no bytes before their existing deadlines; the bounded zoxide query also timed out.
    • Ubuntu workflow 895aae5: ranking and installed multiplexer tests passed, but SIGHUP's third-shell fixture used the visible composer as shell readiness.

    Corrections 48a0ded and e2adc1e use authenticated shell readiness, a release-file queue gate, and actual foreground ownership before Ctrl+C/Ctrl+Z. The focused SIGHUP case and zsh/Bash/Fish same-shell queue plus interrupt cases passed. Production deadlines and security checks are unchanged. This 8 GiB host also had concurrent unrelated builds and substantial load; those processes were preserved. Verification now uses one host test worker with this track's Linux VM stopped, followed by a separate Linux run.

    Module diagnostics correction 52db115 makes all detail rows reachable in short terminals using arrows and PageUp/PageDown. Direct typecheck, 25 focused unit/real-PTY cases (including 50-column NO_COLOR Safe) and verify:fast passed. This does not collect new facts or persist viewport state. Exact last-frame surface compaction remains documented for acceptance integration.

    Current additive candidates:

    • cedar-input: 48a0ded
    • birch-queue: 3adc4515a10e9f7a3af958683b1f389522fc0119
    • amber-copy: 000736ddc47e78d322d2ba6ff83fd4e205c7ca26
    • coral-report: 80bd0cfaf3cabd0b36229317372e16995cbd0505
    • indigo-compare: 0117a3439b05b1e4dab933e9da31c4fb795ef24a
    • willow-vocabulary: be037a0861546705687bc4d633d4281e50fedf46
    • maple-workflow: 1007f719e0178fdec11018703f6b4e4722b1dd4e

    The full failing-file rerun and new canonical gates are still pending. The published #348 head remains 86fb4e4 with successful Actions 38150534791; none of these new heads is claimed CI-green. Existing PR dependency order, both independent siblings, the other track's branches/handoff and the main checkout were preserved. All task temporary writes, test resources and logs are on T7 Shield; owned names are neutral and additive commit messages carry no attribution trailers.

    No master/release merge, frontend freeze or physical validation is claimed.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    type:featureNew feature or improvement

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions