[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81445":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":12,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":14,"stars30d":14,"stars90d":14,"forks30d":14,"starsTrendScore":14,"compositeScore":15,"rankGlobal":10,"rankLanguage":10,"license":16,"archived":17,"fork":17,"defaultBranch":18,"hasWiki":19,"hasPages":17,"topics":20,"createdAt":10,"pushedAt":10,"updatedAt":21,"readmeContent":22,"aiSummary":23,"trendingCount":14,"starSnapshotCount":14,"syncStatus":13,"lastSyncTime":24,"discoverSource":25},81445,"pi-treebase","fu5ha\u002Fpi-treebase","fu5ha","Interactive-rebase style tree navigation and compaction for pi","",null,"TypeScript",32,2,0,1.43,"MIT License",false,"main",true,[],"2026-06-12 02:04:15","# pi-treebase\n\nA session history management tool that combines the functionality of the base `\u002Ftree` command\nwith something similar to `git rebase --interactive`.\n\n![demo gif](.\u002Fcontent\u002Fdemo.gif)\n\n## Installation\n\n```bash\npi install npm:@grayolson\u002Fpi-treebase\n```\n\n## Usage\n\nFirst, use the `\u002Ftreebase` and navigate with the normal tree session view to choose the destination\nto rebase history to.\n\nThen, use an interactive editor of flattened history to select what to **`P`ick** (keep verbatim),\nsummarize with **`L`ow** or **`H`igh** importance, or **`D`rop** entirely.\n\nA new synthetic history branch is then created from the root you selected, interspersing actual\npicked history entries with generated summaries.\n\nSummaries are generated by a model with full context of the entire branch (except dropped entries),\nbut with instructions to only record a summary of the relevant section of the entire linear history\ninto each summary block so that summaries makes sense when interspersed with picked entries.\n\n## Limitations\n\nCurrently, the only supported operation is to \"rebase\" directly back in time to a parent node.\nRebasing one branch past a junction on top of of another branch is not yet supported.\n\n## Hacks\n\n* Implementing this required (as far as I could tell) mutable access to pi's `SessionManager`, which\nis usually exposed as only `ReadonlySessionManager` to command handlers. I did a bad and just\nas-casted it to the writable version. I'm not sure exactly how bad the implications of this are.\n* Using a custom message types as a summary message doesn't behave super well with normal tree\nnavigation, so I hackily pushed native branch summarization messages for this purpose by hooking\na private method.\n\nI will likely try to file issues\u002FPR the ability to do these non-hackily once the bigrefactor lands.\n\n## Slop alert\n\nWarning, this is moderately slop clanker code. It's been cleaned up a bit and I reviewed what I felt\nwere the important parts, but do with that what you will.","pi-treebase 是一个会话历史管理工具，它结合了基础的 `\u002Ftree` 命令功能与类似 `git rebase --interactive` 的交互式重基操作。核心功能包括通过树状视图选择目标节点进行历史重基，并使用交互编辑器对扁平化的历史记录进行选取、总结或删除。该工具采用 TypeScript 编写，能够生成新的合成历史分支，其中包含实际选取的历史条目和生成的摘要。适用于需要对复杂会话历史进行整理和重构的场景，如开发过程中清理冗余日志或重新组织项目历史。当前版本仅支持直接向父节点“重基”，不支持跨越分支结点的操作。","2026-06-11 04:05:06","CREATED_QUERY"]