3.4 KiB
Non-Parity Notes for the OpenClaw Port
This repo aims to be a faithful port of davebcn87/pi-autoresearch, but it will not be a literal 1:1 port of Pi's UI/runtime.
Pinned upstream reference:
- Repo:
https://github.com/davebcn87/pi-autoresearch - Commit:
2227029fa5712944a36938b5fe59f709cb30ed22(2227029f) - Later upstream semantics also ported: confidence scoring from
cf1bbf03debca8f3fb2cca2c3e799b9e23320f87(cf1bbf0)
Principle
Non-parity is acceptable only when it is forced by the host/runtime difference.
That means:
- preserve semantics first
- preserve names and file layout second
- adapt presentation/runtime integration last
Expected non-parity in v1
1. No Pi widget parity
The Pi extension renders an always-visible status widget above the editor.
OpenClaw may provide a thinner status surface instead, such as:
- tool output
- command output
- lightweight summaries
2. No fullscreen dashboard / TUI parity
Pi provides an inline dashboard with keyboard interaction.
OpenClaw v1 should not try to fake this with a new UI system. If a status view exists, it should be thin and optional.
3. No keyboard shortcut parity
Pi has Ctrl+X and Escape affordances tied to its editor runtime.
These are considered host-specific and are not part of the core port contract.
4. Lifecycle hook names will differ
Pi uses hooks such as:
session_startsession_switchsession_forksession_treebefore_agent_startagent_endinput
OpenClaw has a different hook model. We should preserve intent, not literal event names.
In practice, this port now uses documented OpenClaw lifecycle hooks such as:
before_prompt_buildmessage_receivedagent_endsession_end
The result should preserve queued-steer handling and ideas-backlog continuation intent without pretending that Pi's hook names or UI affordances exist in OpenClaw.
5. /autoresearch command is thinner than Pi
The upstream repo includes a dedicated /autoresearch dashboard/entry surface.
OpenClaw v1 keeps the main UX command-first and implements /autoresearch as a mode and status helper that:
- provides a stable explicit entrypoint when host-native skill aliases vary
- detects canonical repo-root files
- enables or disables autoresearch mode for later agent turns
- offers terse status text
- points the agent back to
autoresearch.md
It is intentionally not a dashboard replacement or a fullscreen UI.
Non-parity that is not acceptable
The following would be design drift, not justified non-parity:
- moving canonical runtime files under
.autoresearch/in v1 - renaming
init_experiment,run_experiment, orlog_experiment - making a provider/runtime the product identity
- replacing the explicit command and direct-skill setup surface with a provider-specific worker-first UX
- changing keep/discard/crash behavior for convenience
- relying on hidden runtime state instead of file-first resumability
Honest product statement for v1
The correct way to describe v1 is:
A faithful OpenClaw port of
pi-autoresearchthat preserves upstream semantics, names, and file contracts, while explicitly not matching Pi's editor widget/dashboard UX.
Future parity work
Possible later work, if OpenClaw surfaces support it cleanly:
- richer status presentation
- optional command polish
- optional provider adapters behind the plugin boundary
These should remain secondary to semantic fidelity.