Skip to content

Add initial Notion integration scaffolding#49

Closed
Sertug17 wants to merge 1 commit into
NousResearch:mainfrom
Sertug17:notion-integration
Closed

Add initial Notion integration scaffolding#49
Sertug17 wants to merge 1 commit into
NousResearch:mainfrom
Sertug17:notion-integration

Conversation

@Sertug17

Copy link
Copy Markdown
Contributor

This PR introduces the initial scaffolding for Notion integration into Hermes Agent.

Changes:

  • Created new integration branch
  • Added hello tool example under tools/
  • Preparing integration structure for Notion tools
  • Setup groundwork for tool registration extension

This is the first step toward full Notion support (read, create, update, query database, etc.).

Further tool implementations and tests will follow in subsequent commits.

@Sertug17

Copy link
Copy Markdown
Contributor Author

This PR primarily validates the tool registration flow before implementing full Notion integration.

@teknium1

Copy link
Copy Markdown
Contributor

We already include a notion skill that does this :)

@teknium1 teknium1 closed this Feb 26, 2026
sudo-yf pushed a commit to sudo-yf/hermes-agent that referenced this pull request Apr 5, 2026
…down-v0.28

docs: update all markdown to v0.28.1 state
@kiddhu

kiddhu commented May 28, 2026

Copy link
Copy Markdown

已继续核对 #52#53:当前在 GitHub 上已是关闭/合并状态,不需要再补关。当前这组制度收口结果可视为已完成。接下来将把总控注意力转回 #49 的总收口判断与后续复盘留痕。

@kiddhu

kiddhu commented May 28, 2026

Copy link
Copy Markdown

最终收口判断

结论:保持关闭,不建议重开。

依据

  • PR Add initial Notion integration scaffolding #49 当前在 GitHub 上已处于关闭状态。
  • 该 PR 的目标是 Notion 集成脚手架/验证工具注册流程,但后续已有既有 Notion 能力与治理内容可覆盖相同方向。
  • 当前没有新的阻塞证据要求把它重新打开继续推进。

复盘

  • 这类能力在开工前应先确认仓库里是否已经存在同类技能/实现,避免重复造轮子。
  • 对“脚手架型 PR”,收口标准应更早明确:是验证注册流程,还是要落到可用能力;两者不要混在一起。
  • 以后类似任务,先做既有能力盘点,再决定是否开新 PR。这样更省成本,也更容易收口。

留痕结论

  • 本次总控判断:Add initial Notion integration scaffolding #49 不需要再推进到 reopen / merge,只保留关闭状态即可。
  • 后续如果要继续扩展 Notion 能力,建议另起更明确、可验收的新任务,而不是回头改这条旧线。

teknium1 added a commit that referenced this pull request May 29, 2026
…kew) (#34475)

A process running mismatched module versions — conversation_compression.py
re-imported with the post-#34351 lock code while a long-lived
hermes_state.SessionDB stays bound to the pre-#34351 class in memory — has
the try_acquire_compression_lock call site but not the method. The
AttributeError it raises is NOT a sqlite3.Error, so the method's own
fail-open guard never runs; the exception escapes to the outer agent loop,
which prints the error and retries. Compression never succeeds, the token
count never drops, and the loop re-triggers compaction forever (the
'API call #47/#48/#49 ... has no attribute try_acquire_compression_lock'
spin a user hit after an update).

Wrap the lock acquire so any unexpected exception fails OPEN: skip locking
and proceed with compression. Skipping the lock risks a rare
concurrent-compression session fork; an infinite no-progress loop that never
compresses at all is strictly worse. The remediation hint in the log points
at the real fix (restart / hermes update to resync the stale module).

Also guards get_compression_lock_holder against the same skew.

Adds a regression test simulating the version skew (real SessionDB wrapped
so only the lock methods raise AttributeError) — asserts _compress_context
proceeds and rotates instead of raising.
KKT-OPT pushed a commit to KKT-OPT/hermes-agent that referenced this pull request May 31, 2026
…kew) (NousResearch#34475)

A process running mismatched module versions — conversation_compression.py
re-imported with the post-NousResearch#34351 lock code while a long-lived
hermes_state.SessionDB stays bound to the pre-NousResearch#34351 class in memory — has
the try_acquire_compression_lock call site but not the method. The
AttributeError it raises is NOT a sqlite3.Error, so the method's own
fail-open guard never runs; the exception escapes to the outer agent loop,
which prints the error and retries. Compression never succeeds, the token
count never drops, and the loop re-triggers compaction forever (the
'API call NousResearch#47/NousResearch#48/NousResearch#49 ... has no attribute try_acquire_compression_lock'
spin a user hit after an update).

Wrap the lock acquire so any unexpected exception fails OPEN: skip locking
and proceed with compression. Skipping the lock risks a rare
concurrent-compression session fork; an infinite no-progress loop that never
compresses at all is strictly worse. The remediation hint in the log points
at the real fix (restart / hermes update to resync the stale module).

Also guards get_compression_lock_holder against the same skew.

Adds a regression test simulating the version skew (real SessionDB wrapped
so only the lock methods raise AttributeError) — asserts _compress_context
proceeds and rotates instead of raising.
Sign up for free to 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.

3 participants