Commit Graph
265 Commits
Author SHA1 Message Date
Raven Scott 6b8f28bdfd Updates 2026-04-22 04:41:19 -04:00
Raven Scott eebf6a0e23 Holesail URL Persist 2026-04-22 04:21:32 -04:00
Raven Scott 1b7381c137 http server updates and docs 2026-04-22 04:12:27 -04:00
Raven Scott 4b87f2e2d8 Fixes for http 2026-04-22 03:55:14 -04:00
Raven Scott 7b8fb056c0 Attempt at HTTP Server 2026-04-22 03:44:42 -04:00
Raven Scott 64ba795e0c Fixes for var log 2026-04-21 23:19:38 -04:00
Raven Scott 477de96c4b fix var log 2026-04-21 23:13:19 -04:00
Raven Scott d9bf332f07 Agent Fixes 2026-04-21 22:54:52 -04:00
Raven Scott 3548ae9f65 Update proc 2026-04-21 22:45:50 -04:00
Raven Scott ba53625574 Exit Y/N 2026-04-21 21:30:35 -04:00
Raven Scott df45f5cab4 Chat fixes 2026-04-21 21:02:04 -04:00
Raven Scott 01e066d7cb Chat updates 2026-04-21 20:43:06 -04:00
Raven Scott 6158ac2aa7 Chat updates 2026-04-21 20:30:28 -04:00
Raven Scott ecd01cea50 Chat TUI 2026-04-21 20:17:19 -04:00
Raven Scott 17af3ac65f chat-v1 2026-04-21 20:05:57 -04:00
Raven Scott 36492de3d9 bare-ssh2 parses SFTP handles via bufferSlice/safer-buffer — handles are often
Uint8Array views that fail Buffer.isBuffer; READ/CLOSE/FSTAT/WRITE/READDIR were
rejecting every request with SSH_FX_FAILURE. Add sftpHandleId() using DataView.

OPEN: fix inner try indentation. CHANGELOG: note handle decoding + earlier SFTP
hardening (vfs normalize, enqueueSftpReply, Protocol/SFTP DATA coerce).
2026-04-21 18:22:32 -04:00
Raven Scott ac699f308e SFTP shim: coerce vfs.readFile via normalizeVfsBytesForSftp before storing
handles; use f.buf == null instead of !f.buf so empty buffers/strings do not
force SSH_FX_FAILURE on READ. READ accepts Buffer, typed views, or string after
WRITE.

Earlier in this branch: enqueueSftpReply(reqid) + FAILURE on errors; REQUEST.READ
validation in vendor bare-ssh2; coerce typed arrays to Buffer in SFTP.data and
Protocol.channelData/channelExtData. CHANGELOG notes.
2026-04-21 18:12:56 -04:00
Raven Scott baae7b3482 VFS readFile often returns Uint8Array; SFTP DATA and CHANNEL_DATA assumed
Buffer.isBuffer or treated payloads as UTF-8, corrupting packets and risking
native aborts (bad_optional_access). Normalize ArrayBuffer views in
SFTP.prototype.data and Protocol channelData/channelExtData; align READ shim.

Also includes earlier SFTP hardening: REQUEST.READ/WRITE/FSETSTAT guards,
enqueueSftpReply(reqid) + FAILURE on handler error, CHANGELOG.
2026-04-21 18:06:22 -04:00
Raven Scott 0359129a72 - SFTP.js: validate handle/offset/len on REQUEST.READ; guard WRITE/FSETSTAT
handle access like other handlers (avoid throwing before doFatalSFTPError).
- bare-openssh-sftp: enqueueSftpReply(reqid, fn) sends SSH_FX_FAILURE on
  handler throw/reject; defensive READ path (buffer/finite offsets).
- Document regression (bad_optional_access / -fno-exceptions) in comments;
  add packages/bare-os-openssh/CHANGELOG.md Unreleased entry.
2026-04-21 18:01:34 -04:00
Raven Scott 98dd91020e 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
2026-04-21 17:26:41 -04:00
Raven Scott c50bee46eb fix(openssh): serialize SFTP replies to fix FileZilla request ID mismatch
Queue all outbound SFTP responses (including READ/CLOSE) so async handlers
(REALPATH, STAT, OPENDIR, READDIR, …) cannot reorder packets vs strict clients.
Handle EXTENDED/SETSTAT/FSETSTAT via the same queue instead of bare-ssh2’s
immediate OP_UNSUPPORTED fallback.
2026-04-21 16:55:52 -04:00
Raven Scott caa60e3167 fix(openssh): widen SFTP path policy and return real dir/file metadata
Allow SFTP clients to reach the same logical paths as the shell (system
image, pseudo, home, mounts), deny mutating OPEN on typical read-only
prefixes, merge file/dir handle IDs to avoid collisions, implement FSTAT,
stat-based READDIR NAME attrs/longnames, and improve REALPATH.

Add brittle tests for path policy and wire test.bare-openssh-sftp.js into
npm test.
2026-04-21 16:44:31 -04:00
Raven Scott 6b1555eea9 fixes 2026-04-09 20:48:03 -04:00
Raven Scott c8c877f688 Holesail Service Daemon + Bin Client 2026-04-09 20:42:54 -04:00
Raven Scott 3a69906046 fix(bare-openssh): send CR before command output on SSH PTY after line submit
Fish and bare-readline end the edited line with LF only; many SSH PTYs do not
return the cursor to column 0, so ls/man and other command output started
mid-row. Write `\r` after releasing the line editor and before execShellLine
to align output with the peer terminal.
2026-04-09 01:24:07 -04:00
Raven Scott a86432deff Prefer createFishReadLine for interactive SSH shells (history, arrows,
completion) when BARE_OS_FISH is not 0, matching the in-app terminal.

Keep bare-readline + per-command recycle only as fallback. Wire
suspendReplForSubprocess / resumeReplAfterSubprocess on the SSH child ctx to
suspendFishStdinForSubprocess / resume on the channel stream so baretop and
edit release the correct stdin.

Teardown: disableFishRawMode + releaseFishStdin when the session ends.
2026-04-09 01:16:25 -04:00
Raven Scott 01eddc84bf fix(bare-openssh): stop syncing TERM from PTY to fix SSH TUIs (baretop)
PTY env sync now only updates COLUMNS and LINES. Writing the client TERM
(e.g. xterm-256color) into the forked session env enabled baretop’s default
incremental line-diff, which mis-renders over SSH. Inherited guest TERM is
unchanged, matching in-app terminal behavior.
2026-04-09 01:03:19 -04:00
Raven Scott 2b9a10e371 Normalize embedded newlines to CRLF in SSH child ctx console log/error so
multiline output (e.g. man, bare-slice pager) matches real PTY behavior and
avoids misaligned lines vs the peer terminal.

Mirror pty-req TERM and dimensions into forked session vfs.env (COLUMNS,
LINES) when bareOsForkShellEnv is used; clear target on session end.

Add bare-openssh-pty-console helper module and brittle tests; re-export
formatter from bare-openssh for API parity.
2026-04-09 00:53:45 -04:00
Raven Scott b1607f78fa fix(kernel-runner): bind console to ctx.console in eval'd user scripts
AsyncFunction bodies used global console.log, so ./script.js output over SSH
went to Pear instead of the session TTY. Prepend var console = ctx.console
when ctx.console is present.
2026-04-09 00:10:51 -04:00
Raven Scott a08e1891d3 fix(bare-openssh): drop stray ">" after commands (readline PS1 on recycle)
bare-readline treats empty prompt as falsy and defaults to ">"; each SSH
readline recycle painted that before setPrompt. Pass initialPrompt from
the real PS1, defer first attach until after profile/barerc, and skip the
extra \\r\\n after recycled bare-readline.
2026-04-08 23:59:39 -04:00
Raven Scott 277300b716 fix(bare-openssh): recycle readline after TUIs (e.g. baretop) on SSH
Close bare-readline before each execShellLine and attach a new session
afterward so fullscreen apps own stdin; avoids a corrupted KeyDecoder
and a frozen prompt when baretop/edit exit.
2026-04-08 23:51:20 -04:00
Raven Scott 85bb26fb57 fix(bare-openssh): apply SSH pty size to channel stream for TUIs
Wire pty-req and window-change to set columns/rows on the session
stream so /bin/edit (nano) and similar apps use the real terminal
geometry instead of defaulting to 80x24.
2026-04-08 23:42:48 -04:00
Raven Scott 1ff94f0b48 fix(bare-openssh): bind repl TTY streams to SSH session for edit/nano
Route replStdin, replStdout, and stdout to the SSH channel Duplex so
/bin/edit (nano) and other TUI tools use the remote terminal instead of
Pear CLI. Mark exec channels as TTY for ssh ... nano style invocations.
2026-04-08 23:35:08 -04:00
Raven Scott 198b1b02e3 Allow Multi Session SSH 2026-04-08 23:28:05 -04:00
Raven Scott 8d9f79600c Auto Create Autorized_Keys 2026-04-08 23:07:07 -04:00
Raven Scott 4ad6c08129 Updates 2026-04-08 22:48:55 -04:00
Raven Scott 28323589a8 Update 2026-04-08 22:37:38 -04:00
Raven Scott 710859eaa4 Tests 2026-04-08 22:28:59 -04:00
Raven Scott f4b7798e5d Packaging Tests 2026-04-08 22:11:08 -04:00
Raven Scott d51ed58189 Fix imports 2026-04-08 21:53:33 -04:00
Raven Scott dfeb925776 Closer SSH 2026-04-08 21:43:08 -04:00
Raven Scott 7739b21043 SSH Updates 2026-04-08 21:24:04 -04:00
Raven Scott 385fc80894 Updates 2026-04-08 20:53:38 -04:00
Raven Scott f6fb3179f3 Further fixes SSH 2026-04-08 20:19:05 -04:00
Raven Scott 4757b2a4b0 Starting work on Implementing SSH Server Service 2026-04-08 20:02:12 -04:00
Raven Scott dc85aed876 Fix Terminal Cursor 2026-04-06 08:37:38 -04:00
Raven Scott f2a58ddb67 AutoComplete Engine 2026-04-06 08:24:21 -04:00
Raven Scott 8322f304d8 Update Manpage 2026-04-06 07:32:05 -04:00
Raven Scott 6d0d1b8049 Update Docs 2026-04-06 06:31:59 -04:00
Raven Scott 72e0c9c881 feat(booter): ctx 1.54.0, process table v9, and Holepunch/POSIX proc parity
- Bump BARE_OS_CTX_API_VERSION to 1.54.0 and POSIX profile to 1.0.19
- Process table schema 9: nice/accountingSource, logical maps/threads /proc builders, renice
- disk.os: replication_operator_sketch v8, HyperDHT address sketch, pkg index surfaces
- Protomux operator sketch v4, security_posture v7, corestore snapshot UX hint, pear_stage_pointer v2
- Swarm: BARE_OS_SWARM_ATTEMPT_BURST_PER_SEC; HDMS: host booter warn logging; shell wait exit codes
- getconf/sysconf: additional _SC_* via bareOsGetconfSysconf; socketMsgSurface v6 (iovec/SUSv4 refs)
- Identity: vault rotation audit includes pathcap trusted key count
- CI/docs: holepunch drift report env, kernel STRUCTURE note, verify-bundle-throws comment, matrices and examples
2026-04-05 23:14:08 -04:00