Skip to content

Releases: Companion-Inc/feynman

v0.5.26

Choose a tag to compare

@github-actions github-actions released this 05 Oct 06:13
8307790

v0.5.26 - 2026-10-05

  • GitHub Copilot users get a research model by default. Copilot names Claude models with dots (claude-opus-5.5), which Feynman did not recognize, so a new Copilot login fell back to alphabetical order and set claude-haiku-4.5 as the default; Copilot then rejected it with "The requested model is not supported" for several users. Feynman now picks Copilot's newest Claude Opus, then Sonnet, then GPT. If feynman status shows github-copilot/claude-haiku-4.5 and you did not choose it, run feynman model set to pick another.
  • alpha_ask_paper answers with the arXiv metadata and abstract, marked as a fallback, when alphaXiv does not answer (for example after the login expires), like alpha_search and alpha_get_paper already did.
  • -p is short for --prompt, as in Pi. --setup, --list-models, --new, feynman setup model, and feynman model <provider/model> now say which command was meant.
  • pi-web-access 0.36.0: web_search accepts lists that a model sent as a JSON string (nicobailon/pi-web-access#491), fetch_content asks docs sites for markdown first, Brave prepaid keys keep working, and a fetch_content call whose only URL failed is reported as an error.

v0.5.25

Choose a tag to compare

@github-actions github-actions released this 05 Oct 04:48
735aff6

v0.5.25 - 2026-10-05

  • Pi 1.0.2 and pi-subagents 0.76.0. Pi now uses the patched brace-expansion 5.0.12 (GHSA-q2hr-2g5m-vwhr, GHSA-qhr7-859c-m2p7, GHSA-6j4f-fj2g-mc7p), so Feynman's npm audit has no exceptions left, and an npm install pulls about 120 fewer packages. Pi also retries "model at capacity" errors instead of ending the turn, and Sign in with ChatGPT reports a busy callback port instead of "OAuth state mismatch". pi-subagents frees async slots held by abandoned workflows.
  • A timed-out paper search no longer ends a research step. A Semantic Scholar or OpenAlex topic search that hits the 25 s timeout is answered from the other index, and other sources say which one did not respond instead of "This operation was aborted".
  • arXiv batch versions. Looking up a bare arXiv ID alongside an older version now returns the latest version for the bare ID regardless of feed order. An unavailable explicit version is reported in not_found instead of resolving to a different version. Thanks to Kunyanli230 (#322).

v0.5.24

Choose a tag to compare

@github-actions github-actions released this 03 Oct 05:42
39f3ece

v0.5.24 - 2026-10-03

  • Pi 1.0. Feynman now runs on Pi 1.0.0, with pi-subagents 0.75.0 (background subagents start on Pi 1.0) and pi-btw 0.7.1 (allows Pi 1.x). The terminal UI is fullscreen by default and keeps its own scrollback; run feynman --tui-mode regular, or set "tuiMode": "regular" in ~/.feynman/agent/settings.json, to use the terminal's normal scrollback. Launch warnings show inside the fullscreen UI. Pi 1.0 also adds MCP OAuth hardening, a copy-code Anthropic login for headless machines, and lower codemode token use.

v0.5.23

Choose a tag to compare

@github-actions github-actions released this 02 Oct 15:13
d773e6d

v0.5.23 - 2026-10-02

  • arXiv and PubMed rate limits. arXiv asks for one request every three seconds, and parallel lookups got 429; arXiv requests now run at that pace and a 429 is retried once. A PubMed 429, which a subagent in another process or a shared IP can still trigger, is retried once after a pause.
  • Running several subagents at once from any workflow no longer fails with "workflow: true requires exactly one ```js workflow fenced block": Feynman now always writes the workflow script to a file and runs it by path, as /deepresearch already did.
  • Pi 1.0 is not in this release: pi-subagents 0.74.0 cannot start background subagents on it. The fix is merged upstream (nicobailon/pi-subagents#2634) and Feynman will move to Pi 1.0 once it is released.

v0.5.22

Choose a tag to compare

@github-actions github-actions released this 01 Oct 22:12
e17f5fd

v0.5.22 - 2026-10-01

  • Launch warnings and the first-run telemetry notice show inside the session. Feynman printed them to the terminal just before starting Pi, where Pi 1.0's fullscreen interface (coming in a later Feynman release) hides them for the whole session. They now appear in Pi's own interface: the Windows "No Bash found" warning, the small-local-model warning for research workflows, and the one-time telemetry disclosure. A one-shot --prompt run still prints them to stderr.
  • feynman doctor reports Pi's new quietStartup: "header" setting as "header only" instead of "disabled".

v0.5.21

Choose a tag to compare

@github-actions github-actions released this 01 Oct 20:40
6425f3d

v0.5.21 - 2026-10-01

  • LiteLLM and custom providers that read their key from an environment variable work again. Since Pi 0.99, models.json resolves an environment variable only when written as $NAME; a bare name is sent as the key itself. Feynman's LiteLLM setup wrote LITELLM_MASTER_KEY, so requests went out as Authorization: Bearer LITELLM_MASTER_KEY and the proxy rejected them, and custom providers set up with a variable name broke the same way. Feynman now writes $NAME, and on start rewrites any apiKey in models.json that is a bare all-caps variable name, such as LITELLM_MASTER_KEY, to $LITELLM_MASTER_KEY. Literal keys, placeholders such as local, and !command values are left alone.

v0.5.20

Choose a tag to compare

@github-actions github-actions released this 01 Oct 19:39
c4504d4

v0.5.20 - 2026-10-01

  • Settings saved by Windows Notepad or PowerShell no longer stop Feynman. Both can save UTF-8 with a byte-order mark, which JSON parsing rejects, so Feynman refused to start with "Invalid Feynman settings ... expected a JSON object", and other commands read the file as empty. Feynman now ignores the mark in settings.json, auth.json, and web-search.json, as Pi does. A settings file with a real JSON error now names the error, for example a trailing comma, instead of the generic message.

v0.5.19

Choose a tag to compare

@github-actions github-actions released this 01 Oct 08:01
f39b3e7

v0.5.19 - 2026-10-01

  • Word drafts open without LibreOffice. document_parse needs LibreOffice for .docx files, which most machines lack, so reviewing a thesis or draft in Word format failed. When LibreOffice is missing, Feynman now reads the document's paragraph text directly from the .docx and says so; install LibreOffice for page layout, tables, footnotes, and images.
  • feynman_science_database_search accepts the "null" some models send for an omitted sort or limit, which failed validation before the search ran.
  • Pi 0.99.2 (faster prompt submission in long sessions; saved default models with extension providers load reliably), pi-subagents 0.74.0, and pi-btw 0.7.0. pi-subagents now ships the patched undici 8.10.2, so the undici security exceptions and Feynman's own undici pin are gone. It removed the workflowScript parameter; /deepresearch and /summarize now write the workflow script to outputs/.plans/<slug>-workflow.js and run it by path. Its other new form, an inline ```js workflow block, failed in testing when Claude put the block in its hidden reasoning, while a script file worked with every model, and the file stays next to the plan as a record of the run. Subagent children also follow the project's trust setting, and /reload no longer stops running background workflows.
  • Security: Pi 0.99.2 still locks brace-expansion 5.0.9; the exception for it stays until Pi ships 5.0.12.

v0.5.18

Choose a tag to compare

@github-actions github-actions released this 01 Oct 02:24
4d62d07

v0.5.18 - 2026-09-30

  • A rate-limited paper index no longer ends a research step. When Semantic Scholar is rate-limited or down, a search is answered from OpenAlex, and an OpenAlex topic search that hits OpenAlex's anonymous rate limit or an outage is answered from Semantic Scholar. The result says first which index answered and why. Lookups by OpenAlex ID, DOI, author, venue, or citation still report the error, since the other index has no equivalent.
  • alphaXiv tools answer when alphaXiv cannot. If your alphaXiv login expired or alphaXiv does not respond, alpha_search returns OpenAlex semantic search results and alpha_get_paper returns the arXiv metadata and abstract for an arXiv ID, each marked as a fallback. Run feynman alpha login to get alphaXiv's reports back.
  • pi-web-access 0.35.0: OpenAI web search works when you signed in with ChatGPT (feynman model login openai), and Brave search keeps to its rate limits. The researcher is told to pass a search provider as a plain string, since some models sent provider: "[\"parallel-mcp\"]", which web_search rejects; nicobailon/pi-web-access#491 makes web_search accept that form too.

v0.5.17

Choose a tag to compare

@github-actions github-actions released this 01 Oct 01:32
1666a7c

v0.5.17 - 2026-09-30

  • feynman model login openai works again. Since Pi 0.99, Sign in with ChatGPT needs a stable ID for the installation, which Feynman did not pass, so the login failed at once with "requires a device ID (UUID)". Feynman now shares the deviceId Pi's own /login keeps in ~/.feynman/agent/settings.json.
  • Windows finds per-user Git Bash. Pi looks for Git Bash only under Program Files and on PATH, but a per-user Git for Windows install puts only Git\cmd on PATH, so shell commands failed with "No bash shell found" (about one in five Windows installs that run tools). Feynman now finds that Git Bash and gives it to Pi. When there is no Bash at all, Feynman says so before the session starts, and feynman doctor reports the bash it found.
  • Pressing Enter at the "paste the authorization code / redirect URL" login prompt no longer ends the login with "Missing authorization code"; Feynman asks again, and finishing in the browser still works.
  • API keys are now masked as you paste them during setup, and a key with non-ASCII characters (for example typed with a non-Latin keyboard layout) is rejected with an explanation instead of failing every request with "Cannot convert argument to a ByteString".
  • A rejected SEMANTIC_SCHOLAR_API_KEY now says so instead of request failed: 403 Forbidden.