Repository navigation
Immutable
release. Only release title and notes can be modified.
Release Notes
Added
arf history migratecopies history from the previous default location to the current one, skipping duplicates and leaving the old files in place. Use--dry-runto preview (#454, #455).- Experimental: IPC clients can keep a connection open with
attachand receive events from the session as they happen, so editors and other tools can follow it without polling (#465, #466, #468, #469, #470, #471, #472, #496, #497).arf ipc attachbridges such a connection over stdin/stdout, with optional event subscriptions. Closing stdin ends the bridge while leaving the R session running (#496).- R code can publish its own events with
arf_publish_event. - Subscribers receive
arf.execution_completedwhen terminal input or IPC user code finishes. Responses include an execution ID that matches it. - Subscribers receive R stdout and stderr through
arf.console_output, followed by the matching completion event (#497). - Sessions can expose named R functions ("handlers") for IPC clients to call with JSON arguments, with
--ipc-exposeat startup or later with:ipc exposeafter the user confirms. Handlers are not subject to the code evaluation policy, so expose only functions that validate their arguments.
- Experimental:
arf ipc interrupt [--pid] [--execution-id]and the JSON-RPCinterruptmethod can request interruption of an active IPC evaluation while keeping the R session alive (#489). - Experimental:
arf ipc r-help searchsearches installed R help topics andarf ipc r-help showretrieves Markdown pages without evaluating R, including while R is busy (#499). - Experimental: IPC
evaluateresponses includestatus(ok,error,interrupted, orunknown), matching the execution completion event so clients can detect errors in visible evaluations (#494). - Experimental: arf can start R from a Pixi environment or a rig project (#407, #411, #412, #419, #420, #423).
{ provider = "pixi" }inexperimental.r_source_overridesuses R from the active Pixi environment, such as underpixi run arf, without requiring rig (#407).{ provider = "rig-project" }uses R from a synchronizedrig projproject in the current directory (#419, #420).--r-providerandARF_R_PROVIDERselectpixiorrig-projectexplicitly. Unlike configured overrides, an unavailable provider is an error rather than a fallback (#411, #420).arf r resolveandarf headless --jsonreport the selected provider, where it was requested, and its details; failed explicit provider requests include areason_code(#412, #423).
- Experimental: The
history_runtimeobject inarf headless --jsonoutput includes asourcefield reporting where the history directory came from (default,legacy_default,explicit, orvolatile) (#455).
Changed
- Breaking: The default history location has moved on Linux and Windows (#455, #456).
- Linux:
$XDG_STATE_HOME/arf/history(~/.local/state/arf/history), previously$XDG_DATA_HOME/arf/history(~/.local/share/arf/history). - Windows:
%LOCALAPPDATA%\arf\history, previously%APPDATA%\arf\history. - Existing history is kept. While only the old location has history, arf keeps using it and warns at startup. Run
arf history migrateto copy it; arf then uses the new location. If both locations have history, the new one is used. The old files are left in place, and older arf versions keep using them. - macOS and explicit history directories (
--history-dir,ARF_HISTORY_DIR,history.mode = { dir = ... }) are not affected.
- Linux:
- Breaking:
arf -eandarf -fnow exit with status 1 when R code fails to parse or raises an error, as Rscript does. Previously they printed the error and exited with status 0 (#422). - Breaking:
--r-homeand--with-r-versionnow take precedence overARF_R_HOMEandARF_R_VERSION, and setting both environment variables without either option is an error. Unset one of them or pass the option instead (#408). - Experimental/Breaking:
experimental.r_source_overridesentries use theproviderkey instead oftype. Renametypetoproviderin your configuration (#409). - Experimental/Breaking:
arf headless --jsonnow reports onlystateinr_source_override. Read selection details fromr_source_selectionand the running R version fromr_version(#476). - Experimental/Breaking: Headless IPC
sendandeval --visiblenow run code through R's normal REPL, so task callbacks (addTaskCallback()), autoprinting, and.Last.valuebehave as in interactive R (#450).- Visible
evalresponses leavevalueanderrornull; printed output appears instdoutand errors instderr. Use silentevalto get a value. sendreturns anacceptedacknowledgment instead of reporting evaluation success. Subscribe toarf.execution_completedto learn when it finishes.readline(), menus,browser(), and other nested console reads receive EOF instead of consuming further IPC requests.- The session stops with a diagnostic if the main and continuation prompt options are not distinct, non-empty strings or resemble
browser()prompts.--no-echois unsupported.
- Visible
- Experimental/Breaking: Headless IPC history records each non-whitespace code request when execution begins, including silent
evaluate, and adds its exit status once known. Interactive history still records only visiblesendandeval --visible(#451). - Experimental/Breaking: IPC now rejects code containing a NUL character with an error in both interactive and headless sessions (#451).
:switchnow replaces earlier R version and provider options instead of adding to them, and the new session applies rig project activation afresh (#417).- R source overrides now try later entries when rig is unavailable, and show a single notice if all of them fail (#407).
- Checking an R installation's home directory during startup and
arf r resolvenow times out instead of waiting indefinitely (#407). - The interactive help browser stays responsive while searching large help indexes (#404).
Fixed
arf -eandarf -faccept R code with CRLF line endings (#422).- On Windows, Renviron files are read only once at startup and are skipped with
--no-environand--vanilla(#415). - R's documentation, share, and include directories are found for installations whose
Rscript refers to${R_HOME}(#415). - On macOS, the selected R's own libraries take priority when loading, and switching R versions restores the original library search path (#416).
- After changing directories,
:restartno longer keeps stale R directory paths from the previous R installation (#421). - The help and history browsers show their header row again instead of scrolling it off the screen (#433).
- Ctrl+C during
readline(),menu(), orbrowser()now follows R's interrupt behavior (#478). - Experimental: On Unix, password prompts during silent
arf ipc evalreceive EOF instead of waiting for terminal input (#506). - Experimental: The
R_NOT_AT_PROMPThint fromarf ipcnow points to the arf terminal instead of suggestingarf ipc send "Q", which is rejected in that state (#506). - Experimental: IPC response timeouts now return
TIMEOUT(-32007) with the appliedtimeout_ms, allowing clients to distinguish them from internal errors. Evaluation timeouts must be positive and do not interrupt R execution (#495). - Experimental: Unix IPC sessions no longer delete a different file or socket that replaced theirs at the same path when they exit (#477).
- Experimental: On Windows, an IPC
sendapproval prompt shown right after pressing Enter is no longer declined automatically (#429). - Experimental: On macOS,
arf ipccommands no longer intermittently report a transport error after the session has already handled the request (#432).
Install arf-console 0.7.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/eitsupi/arf/releases/download/v0.7.0/arf-console-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/eitsupi/arf/releases/download/v0.7.0/arf-console-installer.ps1 | iex"Download arf-console 0.7.0
| File | Platform | Checksum |
|---|---|---|
| arf-console-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| arf-console-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| arf-console-aarch64-pc-windows-msvc.zip | ARM64 Windows | checksum |
| arf-console-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| arf-console-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| arf-console-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
| arf-console-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| arf-console-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |