feat(shell): job-aware kill, disown, jobs/set flags, fallback REPL history

- Document interactive shell vs /bin/sh in bare-os-shell man, handbook §9,
  kill(1), and shell-completion guide
- Resolve kill %n and %% to synthetic PIDs via shellBackgroundJobs
- Add disown builtin; jobs -p (pgid-only) and -l (pid column); set -o/+o to
  print errexit/nounset/pipefail/noglob
- Expand completion-engine fallback flags for common utilities
- Persist lines to /.bare/repl_history_<USER> when BARE_OS_REPL_HISTORY=1
  and Fish REPL is off (repl-session + cli-readline)
- Tests: kill job specs, set -o output, jobs -p
This commit is contained in:
Raven Scott
2026-04-21 17:26:41 -04:00
parent c50bee46eb
commit 98dd91020e
46 changed files with 15812 additions and 13956 deletions
+163 -163
View File
@@ -2,9 +2,9 @@
"version": 1,
"bundles": [
{
"path": "/lib/bare/bundles/safetyCatch.js",
"path": "/lib/bare/bundles/hypercoreIdEncoding.js",
"keys": [
"safetyCatch"
"hypercoreIdEncoding"
]
},
{
@@ -14,9 +14,9 @@
]
},
{
"path": "/lib/bare/bundles/hypercoreIdEncoding.js",
"path": "/lib/bare/bundles/safetyCatch.js",
"keys": [
"hypercoreIdEncoding"
"safetyCatch"
]
},
{
@@ -37,18 +37,18 @@
"protomux"
]
},
{
"path": "/lib/bare/bundles/barePath.js",
"keys": [
"barePath"
]
},
{
"path": "/lib/bare/bundles/bareEncoding.js",
"keys": [
"bareEncoding"
]
},
{
"path": "/lib/bare/bundles/barePath.js",
"keys": [
"barePath"
]
},
{
"path": "/lib/bare/bundles/bareEvents.js",
"keys": [
@@ -61,12 +61,6 @@
"bareAbort"
]
},
{
"path": "/lib/bare/bundles/bareAbortController.js",
"keys": [
"bareAbortController"
]
},
{
"path": "/lib/bare/bundles/bareAnsiEscapes.js",
"keys": [
@@ -74,9 +68,9 @@
]
},
{
"path": "/lib/bare/bundles/bareReadline.js",
"path": "/lib/bare/bundles/bareAbortController.js",
"keys": [
"bareReadline"
"bareAbortController"
]
},
{
@@ -92,27 +86,9 @@
]
},
{
"path": "/lib/bare/bundles/fetch.js",
"path": "/lib/bare/bundles/bareReadline.js",
"keys": [
"fetch"
]
},
{
"path": "/lib/bare/bundles/bareAsyncHooks.js",
"keys": [
"bareAsyncHooks"
]
},
{
"path": "/lib/bare/bundles/bareAssert.js",
"keys": [
"bareAssert"
]
},
{
"path": "/lib/bare/bundles/bareAtomics.js",
"keys": [
"bareAtomics"
"bareReadline"
]
},
{
@@ -122,9 +98,27 @@
]
},
{
"path": "/lib/bare/bundles/bareApk.js",
"path": "/lib/bare/bundles/bareAsyncHooks.js",
"keys": [
"bareApk"
"bareAsyncHooks"
]
},
{
"path": "/lib/bare/bundles/bareAtomics.js",
"keys": [
"bareAtomics"
]
},
{
"path": "/lib/bare/bundles/bareAssert.js",
"keys": [
"bareAssert"
]
},
{
"path": "/lib/bare/bundles/fetch.js",
"keys": [
"fetch"
]
},
{
@@ -133,24 +127,30 @@
"bareBmp"
]
},
{
"path": "/lib/bare/bundles/bareApk.js",
"keys": [
"bareApk"
]
},
{
"path": "/lib/bare/bundles/bareBundle.js",
"keys": [
"bareBundle"
]
},
{
"path": "/lib/bare/bundles/bareBundleCompile.js",
"keys": [
"bareBundleCompile"
]
},
{
"path": "/lib/bare/bundles/bareBuffer.js",
"keys": [
"bareBuffer"
]
},
{
"path": "/lib/bare/bundles/bareBundleCompile.js",
"keys": [
"bareBundleCompile"
]
},
{
"path": "/lib/bare/bundles/bareBluetoothApple.js",
"keys": [
@@ -187,18 +187,18 @@
"bareBundleId"
]
},
{
"path": "/lib/bare/bundles/bareDebugLog.js",
"keys": [
"bareDebugLog"
]
},
{
"path": "/lib/bare/bundles/bareDelta.js",
"keys": [
"bareDelta"
]
},
{
"path": "/lib/bare/bundles/bareDebugLog.js",
"keys": [
"bareDebugLog"
]
},
{
"path": "/lib/bare/bundles/bareDiagnosticsChannel.js",
"keys": [
@@ -223,12 +223,6 @@
"bareDaemon"
]
},
{
"path": "/lib/bare/bundles/bareDgram.js",
"keys": [
"bareDgram"
]
},
{
"path": "/lib/bare/bundles/bareExif.js",
"keys": [
@@ -241,24 +235,18 @@
"bareEnv"
]
},
{
"path": "/lib/bare/bundles/bareDgram.js",
"keys": [
"bareDgram"
]
},
{
"path": "/lib/bare/bundles/bareFfmpeg.js",
"keys": [
"bareFfmpeg"
]
},
{
"path": "/lib/bare/bundles/bareFormat.js",
"keys": [
"bareFormat"
]
},
{
"path": "/lib/bare/bundles/bareFormData.js",
"keys": [
"bareFormData"
]
},
{
"path": "/lib/bare/bundles/bareFfmpegEncodings.js",
"keys": [
@@ -266,21 +254,15 @@
]
},
{
"path": "/lib/bare/bundles/bareGif.js",
"path": "/lib/bare/bundles/bareFormData.js",
"keys": [
"bareGif"
"bareFormData"
]
},
{
"path": "/lib/bare/bundles/bareHeif.js",
"path": "/lib/bare/bundles/bareFormat.js",
"keys": [
"bareHeif"
]
},
{
"path": "/lib/bare/bundles/bareGtk.js",
"keys": [
"bareGtk"
"bareFormat"
]
},
{
@@ -290,9 +272,21 @@
]
},
{
"path": "/lib/bare/bundles/bareFs.js",
"path": "/lib/bare/bundles/bareGif.js",
"keys": [
"bareFs"
"bareGif"
]
},
{
"path": "/lib/bare/bundles/bareGtk.js",
"keys": [
"bareGtk"
]
},
{
"path": "/lib/bare/bundles/bareHeif.js",
"keys": [
"bareHeif"
]
},
{
@@ -307,6 +301,12 @@
"bareHttpParser"
]
},
{
"path": "/lib/bare/bundles/bareFs.js",
"keys": [
"bareFs"
]
},
{
"path": "/lib/bare/bundles/bareIco.js",
"keys": [
@@ -325,18 +325,18 @@
"bareInspect"
]
},
{
"path": "/lib/bare/bundles/bareHttps.js",
"keys": [
"bareHttps"
]
},
{
"path": "/lib/bare/bundles/bareHttp1.js",
"keys": [
"bareHttp1"
]
},
{
"path": "/lib/bare/bundles/bareHttps.js",
"keys": [
"bareHttps"
]
},
{
"path": "/lib/bare/bundles/bareJpeg.js",
"keys": [
@@ -379,18 +379,6 @@
"bareLink"
]
},
{
"path": "/lib/bare/bundles/bareMake.js",
"keys": [
"bareMake"
]
},
{
"path": "/lib/bare/bundles/bareModule.js",
"keys": [
"bareModule"
]
},
{
"path": "/lib/bare/bundles/bareModuleResolve.js",
"keys": [
@@ -404,9 +392,15 @@
]
},
{
"path": "/lib/bare/bundles/bareDev.js",
"path": "/lib/bare/bundles/bareModule.js",
"keys": [
"bareDev"
"bareModule"
]
},
{
"path": "/lib/bare/bundles/bareMake.js",
"keys": [
"bareMake"
]
},
{
@@ -427,6 +421,12 @@
"bareMedia"
]
},
{
"path": "/lib/bare/bundles/bareNodeFetch.js",
"keys": [
"bareNodeFetch"
]
},
{
"path": "/lib/bare/bundles/bareNet.js",
"keys": [
@@ -440,9 +440,9 @@
]
},
{
"path": "/lib/bare/bundles/bareNodeFetch.js",
"path": "/lib/bare/bundles/bareDev.js",
"keys": [
"bareNodeFetch"
"bareDev"
]
},
{
@@ -476,9 +476,9 @@
]
},
{
"path": "/lib/bare/bundles/barePackDrive.js",
"path": "/lib/bare/bundles/barePack.js",
"keys": [
"barePackDrive"
"barePack"
]
},
{
@@ -488,15 +488,9 @@
]
},
{
"path": "/lib/bare/bundles/barePunycode.js",
"path": "/lib/bare/bundles/barePackDrive.js",
"keys": [
"barePunycode"
]
},
{
"path": "/lib/bare/bundles/barePack.js",
"keys": [
"barePack"
"barePackDrive"
]
},
{
@@ -512,9 +506,9 @@
]
},
{
"path": "/lib/bare/bundles/bareProcess.js",
"path": "/lib/bare/bundles/barePunycode.js",
"keys": [
"bareProcess"
"barePunycode"
]
},
{
@@ -536,9 +530,15 @@
]
},
{
"path": "/lib/bare/bundles/barePromClient.js",
"path": "/lib/bare/bundles/bareProcess.js",
"keys": [
"barePromClient"
"bareProcess"
]
},
{
"path": "/lib/bare/bundles/bareRpc.js",
"keys": [
"bareRpc"
]
},
{
@@ -548,15 +548,15 @@
]
},
{
"path": "/lib/bare/bundles/bareSemver.js",
"path": "/lib/bare/bundles/barePromClient.js",
"keys": [
"bareSemver"
"barePromClient"
]
},
{
"path": "/lib/bare/bundles/bareRpc.js",
"path": "/lib/bare/bundles/bareSemver.js",
"keys": [
"bareRpc"
"bareSemver"
]
},
{
@@ -571,12 +571,6 @@
"bareRepl"
]
},
{
"path": "/lib/bare/bundles/bareStdio.js",
"keys": [
"bareStdio"
]
},
{
"path": "/lib/bare/bundles/bareRun.js",
"keys": [
@@ -608,9 +602,9 @@
]
},
{
"path": "/lib/bare/bundles/bareStorage.js",
"path": "/lib/bare/bundles/bareStdio.js",
"keys": [
"bareStorage"
"bareStdio"
]
},
{
@@ -631,6 +625,12 @@
"bareSubprocess"
]
},
{
"path": "/lib/bare/bundles/bareStorage.js",
"keys": [
"bareStorage"
]
},
{
"path": "/lib/bare/bundles/bareTap.js",
"keys": [
@@ -674,9 +674,9 @@
]
},
{
"path": "/lib/bare/bundles/bareTty.js",
"path": "/lib/bare/bundles/bareUiKit.js",
"keys": [
"bareTty"
"bareUiKit"
]
},
{
@@ -686,15 +686,9 @@
]
},
{
"path": "/lib/bare/bundles/bareUiKit.js",
"path": "/lib/bare/bundles/bareTty.js",
"keys": [
"bareUiKit"
]
},
{
"path": "/lib/bare/bundles/bareUnpack.js",
"keys": [
"bareUnpack"
"bareTty"
]
},
{
@@ -710,9 +704,9 @@
]
},
{
"path": "/lib/bare/bundles/bareWebKit.js",
"path": "/lib/bare/bundles/bareUnpack.js",
"keys": [
"bareWebKit"
"bareUnpack"
]
},
{
@@ -721,6 +715,18 @@
"bareWalkHandles"
]
},
{
"path": "/lib/bare/bundles/bareWebp.js",
"keys": [
"bareWebp"
]
},
{
"path": "/lib/bare/bundles/bareWebKit.js",
"keys": [
"bareWebKit"
]
},
{
"path": "/lib/bare/bundles/bareWebKitGtk.js",
"keys": [
@@ -734,9 +740,9 @@
]
},
{
"path": "/lib/bare/bundles/bareWebp.js",
"path": "/lib/bare/bundles/bareV8ToIstanbul.js",
"keys": [
"bareWebp"
"bareV8ToIstanbul"
]
},
{
@@ -751,24 +757,12 @@
"bareWinUi"
]
},
{
"path": "/lib/bare/bundles/bareV8ToIstanbul.js",
"keys": [
"bareV8ToIstanbul"
]
},
{
"path": "/lib/bare/bundles/bareXdiff.js",
"keys": [
"bareXdiff"
]
},
{
"path": "/lib/bare/bundles/bareWhich.js",
"keys": [
"bareWhich"
]
},
{
"path": "/lib/bare/bundles/bareZlib.js",
"keys": [
@@ -776,9 +770,15 @@
]
},
{
"path": "/lib/bare/bundles/bareZmq.js",
"path": "/lib/bare/bundles/bareWhich.js",
"keys": [
"bareZmq"
"bareWhich"
]
},
{
"path": "/lib/bare/bundles/bareWorker.js",
"keys": [
"bareWorker"
]
},
{
@@ -788,9 +788,9 @@
]
},
{
"path": "/lib/bare/bundles/bareWorker.js",
"path": "/lib/bare/bundles/bareZmq.js",
"keys": [
"bareWorker"
"bareZmq"
]
},
{
@@ -1607,9 +1607,9 @@
],
"bundleProvenance": {
"schemaVersion": 1,
"generatedAt": "2026-04-09T23:33:39.947Z",
"gitCommit": "3a6990604607b059feaf78006337e3845dc762c7",
"nodeVersion": "v22.22.0",
"generatedAt": "2026-04-21T21:25:45.989Z",
"gitCommit": "c50bee46ebd5f05189131385330d077c2332817c",
"nodeVersion": "v20.20.2",
"bundleTier": "all",
"normativeManifest": "packages/bare-os-booter/lib/bare-module-manifest.json",
"buildScript": "packages/bare-os-bare-libs/build.mjs"
+3 -1
View File
@@ -1,6 +1,6 @@
{
"schema": 1,
"atMs": 1775777169246,
"atMs": 1776806744827,
"commands": [
"arch",
"awk",
@@ -111,7 +111,9 @@
"setfacl",
"sh",
"sha1sum",
"sha224sum",
"sha256sum",
"sha384sum",
"sha512sum",
"shuf",
"sleep",