1作者: bumpa4 个月前
我为一种我无法通过现有工具舒适完成的工作流程构建了一个终端差异查看器:在不离开运行代理的终端会话的情况下,审查 AI 生成的代码更改,注释需要更改的内容,并将这些注释直接反馈给代理。现有的差异查看器很多,有些甚至可以将注释反馈给代理,但它们都不适合我的工作流程——它们将我从终端中拉出到单独的应用程序,或者返回代理的往返过程很笨拙。 Revdiff 就是我解决这个问题的方法。在 Claude Code 会话中,我输入 `/revdiff main` 或者只说“审查最近 3 次提交的差异”——它会作为终端覆盖层在代理会话之上打开。我阅读差异,在任何行、代码块或文件上添加注释,然后退出。注释会直接返回给代理,代理会拾取它们并开始处理。当代理完成时,revdiff 会重新打开新的更改,这样我就可以再次注释——这个循环会一直持续到我退出且没有留下任何注释。 同样的工作流程也被证明对计划也很有用。有一个单独的 `revdiff-planning` 插件,它会钩入 Claude Code 的计划模式——当代理完成一个计划并调用 ExitPlanMode 时,revdiff 会自动在计划文本上打开。我注释掉我不同意或想要扩展的部分,退出,然后代理在编写任何代码之前修改计划。 它是一个双窗格 TUI:左侧是文件树,右侧是语法高亮显示的差异。Vim 风格的导航,/搜索,代码块跳转,单词级更改高亮显示,责备槽,折叠差异模式。完全可定制——7 个捆绑的颜色主题,可重新映射的键绑定,以及通过 CLI 标志、环境变量或配置文件进行的每个颜色覆盖。适用于 git 和 Mercurial。 它是一个单一的二进制文件——只需 `revdiff HEAD~3` 即可审查您的最后 3 次提交。适用于 Claude Code(通过 tmux、Zellij、kitty、wezterm、Kaku、cmux、ghostty、iTerm2 或 Emacs vterm 的终端覆盖——无论您使用哪个)、Codex 和 pi 的即用型插件均可用。 用 Go 编写,开源(MIT)。通过 brew 安装:`brew install umputun/apps/revdiff` GitHub: [https://github.com/umputun/revdiff](https://github.com/umputun/revdiff) 网站: [https://revdiff.com](https://revdiff.com) 很想听听其他人如何处理审查 AI 生成的差异和 PR,任何不寻常的用例,以及改进或添加的想法。
13作者: a-ve4 个月前
嗨,HN! 最近我从 Fedora/GNOME 笔记本电脑换成了 MacBook Air。我之前的配置作为便携式工作站一直很好用,但现在我开始更多地出差,同时远程工作,需要一个性能相近但电池续航更长的设备。我最怀念的是一个简单的任务栏,它能显示当前工作区中的窗口,而不是像 Dock 那样把所有东西都混在一起。 我开发了 boringBar,这样我就不用 Dock 了。它只显示当前 Space 中的窗口,让你通过在栏上滚动来切换 Space,并添加了一个桌面切换器,这样你就可以直接跳转到任何 Space。你还可以隐藏系统 Dock,固定应用程序,通过缩略图预览窗口,以及从可搜索的菜单中启动应用程序(我禁用了 Spotlight,因为它在我的机器上出于某种原因使用了大量的系统资源)。 我已经自用几个月了,现在终于觉得它足够完善可以分享了。 它适用于那些喜欢 macOS 但希望窗口管理感觉更像 GNOME、Windows 或传统任务栏的人。它也适用于像我这样希望更容易过渡到 macOS 的人,尤其是在 Windows 变得越来越不友好的情况下。 我很乐意收到关于 UX、bug 的反馈,以及这是否解决了其他人同样的 Dock/Spaces 痛点。 PS:它可能也会吸引那些怀念过去的 GNOME 2 桌面的人。我最初的 Linux 之旅就是从它开始的,而 boringBar 为我找回了一些那种感觉。
4作者: amakhov4 个月前
Hi HN, 我构建了 t4,一个将 WAL 和快照存储在 S3 中的数据存储。 它没有采用传统存储方式,而是将只追加的段写入对象存储,并通过检查点 + WAL 重建状态。 这种模型的一个副作用是数据库自然而然地实现了版本控制: - 你可以恢复到任何过去的状态 - 从任何时间点分支(通过写时复制) - 重放历史记录 我最初开始这个项目是为了在 Kubernetes 中替代 etcd,但它正在发展成为一个通用的版本化状态存储。 我很想知道大家对以下几点的看法: - 使用对象存储作为主要持久化层 - 分支/时间旅行在实践中是否真的有用