Repository navigation
Epic: terminal workflow initiative (make one command's result useful for the next) #359
Description
Activity
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.tsuntil 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.
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 changeanswersByDefault. - Local additive candidates: input
991f299c8aebf11e76193cd10ebc161c6f7a5662, queue97e427079971a5c214c0601279f957c5e353e10a, output references/workflows3097cbbfe98faac0eb0ea1a33897d4e5dc53ef92, vocabulary siblingd4619e4d719f912b7c8a71374a33012dbab175b9. 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,moduleManagerUxpassed 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.tsremains 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.- Published Input awareness: show when a command is waiting for you #348 head:
Bonjour — dans
raiseCatError/notMyShell,scripts/demos/render.mjs:110etsrc/ask/configAssist.ts:164passent 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.Workflow stabilization progress; the shared frontend is not frozen.
- Current additive candidates: input
fix/workflow-cedarat9465eb5; queuefix/workflow-birchat8b25ad0; copyfix/workflow-amberat05f8b03; reportfix/workflow-coralat768183b; comparefix/workflow-indigoatce6f2f5; vocabulary siblingfix/workflow-willowat0b2e886; output references/workflowfix/workflow-mapleat5756f7c. 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
4636672accepts 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:
5570d34sanitizes restored labels in the comparison chooser header and makes invisible controls visible in authored review UI;25af5bakeeps 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
9465eb5adds 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 andverify:fastpass. 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.
- Current additive candidates: input
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.
7. Bonjour — dans
raiseCatError/notMyShell,scripts/demos/render.mjs:110etsrc/ask/configAssist.ts:164passent 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
masteractuelle, 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
masterbranch, 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!
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.
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.mdon the workflow feature stack. Draft PR ≠ merged, released or physically validated. Always verify current heads.Dependency/PR map
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
/ps, ephemeral clipboard staging and privacy-safe suggestions: planned.Phase D — selective ecosystem integration
Companion platform/identity work (separate scope)
feature/expressive-activity-vocabulary, not integrated/tested. Requires 600+ curated pairs, stable per-command selection, Expressive/Classic settings, real lifecycle QA.Phase E — integration and physical QA
Product constraints