Skip to content

feat: Persist the input history between runs. - #59

Closed
Artmann wants to merge 2 commits into
anomalyco:devfrom
Artmann:artmann/persist-message-history2
Closed

feat: Persist the input history between runs.#59
Artmann wants to merge 2 commits into
anomalyco:devfrom
Artmann:artmann/persist-message-history2

Conversation

@Artmann

@ArtmannArtmann commented May 25, 2025

Copy link
Copy Markdown

Saves the user's input history in a session to the database.

Fixes#57

@adamdotdevin

Copy link
Copy Markdown
Member

hey, this is definitely functionality we'll want in opencode, but dax is currently rewriting the backend entirely in #38, so we'll need to wait for that to land (and this PR will change a lot!)

@Artmann

Copy link
Copy Markdown
Author

Okay, then I'll wait :)

@ArtmannArtmann closed this May 27, 2025
randomm referenced this pull request in randomm/opencode Jan 9, 2026
* feat: add onSave hooks for automatic linting (#56)
Add language-specific hooks configuration to both opencode.work.json and
opencode.personal.json to automatically run linters on file save operations.
Implemented hooks for 6 languages:
- Python: ruff check, mypy, black
- JavaScript/TypeScript: eslint, tsc, prettier
- Rust: cargo clippy, cargo fmt
- Shell: shellcheck
- Ruby: rubocop
- Go: go fmt, golangci-lint
This ensures consistent code quality enforcement across all projects using
these configurations and catches quality issues early before commits.
* fix: move hooks to experimental.hook section and sync configs (#58)
- Removed incorrect top-level hooks array from both config files
- Moved hooks to experimental.hook.file_edited structure
- Synchronized all agent bash permissions to 'short *' allow
- Maintains consistent configuration across work and personal profiles
randomm referenced this pull request in randomm/opencode Jan 9, 2026
The top-level 'hooks' array was incorrectly retained after PR #59 merge due to
a merge conflict resolution issue. All hooks configuration is properly located
in experimental.hook.file_edited structure.
This removes the invalid top-level 'hooks' key that was causing config
validation errors while preserving the correct experimental hook configuration.
zoulukuang added a commit to zoulukuang/deskfox that referenced this pull request Aug 14, 2026
…-toolkit]
自动化原理上做不到的 10 条收成 `MANUAL-CHECKLIST.md`,每条给出前置/步骤/通过判据/
失败记什么,并**必须写明「机器为什么做不到」** —— 否则下次会有人重复写一版跑不通的脚本。
单列第二节「本可自动化但本轮未覆盖」8 条(anomalyco#16 面板矩阵 / anomalyco#22 终端 / anomalyco#26 聊天引用 /
anomalyco#27 md 内链拦截,以及只验了入口没验效果的 anomalyco#59anomalyco#62anomalyco#63anomalyco#55)。
它们**不是「验过了」而是「还没验」**,混进人工单里会被误当成没问题,故显式分开。
更正 anomalyco#12:总清单原文写「崩溃/无响应恢复对话框 —— 出现且按钮可用」,
但 renderer-crash-guard.ts 的实现是**静默自愈**(120s 内第二次可数崩溃 → 隔离 .dat 快照 →
reload,单次崩溃只记日志),根本没有对话框。同 anomalyco#21 / anomalyco#48,属条目本身写错,就地更正并注明源码依据。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wut6R6htBzR8fBN8gbJkWg
zoulukuang added a commit to zoulukuang/deskfox that referenced this pull request Aug 14, 2026
人工验收单第二节列的 8 条「本可自动化但未覆盖」全部补成脚本,现状:
第 2 组 7/7、第 3 组 16 通过 2 跳过、第 4 组 11/11、第 5~7 组 11 通过 2 跳过,**待处理 0**。
剩下的跳过项都是真的做不了(分享需逐次授权;飞书绑定/群消息需真实外部账号)。
## 新覆盖的条目
- **anomalyco#16 面板开关矩阵**:树/审查/终端 **8 种组合全跑**,每种都验不遮挡不溢出。
价值最高的一条 —— `flex-row-reverse` 当初复发正是因为只测了「文件树+聊天」一种组合。
- **anomalyco#22 终端**:开/新建/关,判据是终端实例数真的变。
- **anomalyco#26 聊天引用**:选中 → 右键 → 添加到聊天窗口 → **再点浮层里的「加入聊天」** →
卡片入输入区 → 点卡片不开空白预览页。
- **anomalyco#27 md 内链拦截**:内链跳转在应用内完成,且**没有浏览器被拉起**。
- **anomalyco#59 主题**:真切一次 Fox Blue —— `data-theme` onedarkpro → fox-blue,
`--surface-base-active` `#e2e4e7` → **`#7295c452`**(正是清单要求的值),验完切回。
- **anomalyco#62 MCP**:真执行 ⌘; 开关一次并复位。
- **anomalyco#63**:如实报「只有一个本地服务器,无从切换」;workspace 切换由 anomalyco#19/anomalyco#18 覆盖。
- **anomalyco#55 飞书页**:开关翻转 + **落盘复核** + 复位。
## 被实测推翻的「想当然」(这一批)
- **审查不是独立面板,是中栏的一个 tab**(`[data-component="session-review"]` 从不出现)。
按名字猜选择器,anomalyco#16 里这一档永远开不起来,矩阵只能跑 4/8。
- **终端判据不能带 `canvas`**:PDF/xlsx 预览也是 canvas,导致「没开终端」也被判成开着。
- **标签条会横向溢出**:被挤出可见区的 tab **仍能报出几何坐标**,照着点会落到别处 ——
实撞点在会话标题上、**误触发了内联重命名**。坐标取得到 ≠ 那个位置真属于它。
故 `open_readme` 一律走文件树节点。
- **「添加到聊天窗口」只是第一步**,它先弹提问浮层,要再点「加入聊天」才真入聊天。
停在第一步找不到卡片,曾被记成「引用功能没生效」。
- **`data-theme` 是主题 id,命令面板显示的是主题名**(`onedarkpro` vs「One Dark Pro」)。
拿 id 去搜命令必然搜不到 —— 复位连续失败,**界面被留在 Fox Blue 两次**。
改为从主题定义文件读 id→名 映射,并轮询等主题真的生效。
- **搜索词与匹配词必须一致**:搜「使用主题:X」却取首个候选,点中的未必是 X。
- **持久化判据要具体到键+值**:第一版猜关键词 `caffeinate`,而真实键是
`preventSleepConfig`(store-keys.ts),「落盘可见」恒为 False —— 等于这条根本没验到,
只是没报错而已。
- **anomalyco#27 别拿「前台应用是谁」当判据**:探针自己的 osascript 就会打乱前台(实撞拿到 'Finder')。
改看有没有浏览器进程被拉起。
- **anomalyco#30 撤销要有东西可撤**:会话状态随前面条目漂移,多次 13→13→13 不是撤销坏了,
是没有可撤销的东西。改为先用 shell 造一条再验。
所有改全局状态的条目(主题 / 语言 / 权限自动接受 / 防休眠 / MCP)跑完都复位并复核。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wut6R6htBzR8fBN8gbJkWg
zoulukuang added a commit to zoulukuang/deskfox that referenced this pull request Aug 14, 2026
- MANUAL-CHECKLIST 第二节从「未覆盖的缺口」改为「曾经的缺口,已补齐」并列出归属脚本。
**保留该节而不是删掉** —— 它记录了「哪些曾被当成不能自动化、后来发现其实能」,
下次再有人想把某条塞进人工单时,先看看是不是同一类误判。
- CHECKLIST 的 8 行预期与工具列改成实测结论(如 anomalyco#22 判据不能带 canvas、
anomalyco#59 data-theme 是 id 而面板显示的是名、anomalyco#63 只有一个本地服务器无从切换)。
- 同步本次 sync 的验收记录:四组待处理归零,只剩人工项。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wut6R6htBzR8fBN8gbJkWg
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Message history is not persisted

3 participants

@Artmann@adamdotdevin@christofferdeepnote