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
47 changes: 0 additions & 47 deletions .github/workflows/plugin-api-v2.yml

This file was deleted.

66 changes: 66 additions & 0 deletions .github/workflows/plugin-api-v3.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: plugin-api-v3

on:
pull_request:
push:
branches:
- main
workflow_dispatch:

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: 4dd69dd621e029e51e99aa428443fa3a4ec1f6cf
path: .plugin-contracts
- uses: actions/setup-python@v5
with:
python-version: "3.13"
- name: Check Plugin API v3
env:
PYTHONPATH: .plugin-contracts
run: python -m akashic_plugin_contracts check plugin.py

composition-parity:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v4
with:
repository: kachofugetsu09/akashic-agent
ref: 3005f838bcd96e2cbc58616aede46e4f39df4523
path: .akashic-core
- uses: actions/setup-python@v5
with:
python-version: "3.13"
cache: pip
cache-dependency-path: .akashic-core/requirements.txt
- name: Install exact Core runtime
run: |
python -m venv .venv
.venv/bin/python -m pip install \
-r .akashic-core/requirements.txt \
-r .akashic-core/requirements-dev.txt \
-r requirements.txt \
pytest pytest-asyncio
- name: Verify Feishu v3 composition
env:
AKASHIC_AGENT_ROOT: .akashic-core
PYTHONPATH: .akashic-core
run: .venv/bin/python -m pytest -q tests/
- name: Check v3 source types
env:
PYTHONPATH: .akashic-core
run: .venv/bin/pyright --pythonpath .venv/bin/python --level error plugin.py channel.py config.py cards.py tests
- name: Compile Python sources
run: python -m compileall -q plugin.py channel.py config.py cards.py tests
- name: Check diff formatting
run: git diff --check
24 changes: 22 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,23 @@
# feishu
# Feishu v3 channel

Akashic Feishu channel plugin.
Feishu is a pure v3 `ChannelDefinition`/`ChannelAdapter` plugin. Core owns
inbound admission, identity mapping, `/stop`, turn-stream lifecycle, delivery
identity, and persistent state; this repository only translates Feishu's
provider protocol.

The v3 adapter accepts Core-owned image and file references for outbound delivery:
it verifies the exact reference and bounded bytes before Feishu upload, then
sends text and attachments in request order. Incoming image, file, and rich-post
media are downloaded through the provider API and imported into Core's artifact
store before one ingress admission. Provider effects use `DELIVERED`,
`REJECTED`, and `UNKNOWN` without exposing workspace paths.
The previous v2 installation and its data remain available for an explicit,
append-only migration; no v2 class or ABI is loaded by this artifact.
Feishu owns no plugin database or attachment store, so this migration has no
plugin-side copy/delete step: the existing `config.local.toml` remains the
formal source and Core owns identity/session data.

Formal startup is the only path that resolves `CredentialRef` through Core's
provider client factory and creates the HTTP/WebSocket client. Candidate
construction and validation never read formal credentials, create an SDK
client, or contact Feishu.
11 changes: 11 additions & 0 deletions akashic.plugin.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
schema_version = 1
name = "feishu"
version = "3.0.0"
api_version = 3
entrypoint = "plugin.py"

[[python]]
requirements = "requirements.txt"

[channel_credentials]
feishu = ["appId", "appSecret", "app_id", "app_secret"]
Loading
Loading