Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions .github/workflows/plugin-api-v2.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: plugin-api-v2

on:
pull_request:
push:
branches:
- main

permissions:
contents: read

jobs:
contract:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v4
with:
repository: akashic-plugins/plugin-contracts
ref: 24543445c7b99ca63fcd90b5828f754a148b184c
path: .plugin-contracts
- uses: actions/setup-python@v5
with:
python-version: "3.13"
- name: Check Plugin API v2
env:
PYTHONPATH: .plugin-contracts
run: python -m akashic_plugin_contracts check plugin.py
3 changes: 2 additions & 1 deletion plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ def emit(self, event: object) -> None: ...


class ObservePlugin(Plugin):
api_version = 2
@classmethod
def dashboard_module(cls) -> str | None:
return "dashboard.py"
Expand All @@ -47,7 +48,7 @@ def mobile_ui(cls) -> MobileUiContribution:
name = "observe"
version = "1.2.0"

async def initialize(self) -> None:
def activate(self) -> None:
workspace = self.context.workspace
if workspace is None:
logger.warning("observe 插件缺少 workspace,跳过加载")
Expand Down
6 changes: 3 additions & 3 deletions tests/test_plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ async def _run_mobile_turn_observe_seam(
event_bus.on(TurnCommitted, committed.append)
try:
# 1. 用真实 after-reasoning 持久化生成 assistant message ID
await plugin.initialize()
plugin.activate()
session = manager.get_or_create("mobile:observe-seam")
message = InboundMessage(
channel="mobile",
Expand Down Expand Up @@ -180,7 +180,7 @@ async def _run_mobile_turn_observe_seam(


@pytest.mark.asyncio
async def test_observe_plugin_initialize_and_terminate(tmp_path: Path) -> None:
async def test_observe_plugin_activate_and_terminate(tmp_path: Path) -> None:
plugin = ObservePlugin()
scope = PluginScope("observe")
plugin.context = PluginContext(
Expand All @@ -193,7 +193,7 @@ async def test_observe_plugin_initialize_and_terminate(tmp_path: Path) -> None:
workspace=tmp_path,
scope=scope,
)
await plugin.initialize()
plugin.activate()
await asyncio.sleep(0.05)
await plugin.terminate()
assert await scope.aclose() == []
Expand Down
Loading