Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
8778e02
docs(platforms): add capability matrix skeleton
luffy-aiagent Jul 4, 2026
fe294a1
docs(platforms): seed LINE notes from ADR #1291 review
luffy-aiagent Jul 4, 2026
f14981b
docs(platforms): docs/platforms/wecom.md (schema v1)
luffy-aiagent Jul 4, 2026
6e3f8ef
docs(platforms): docs/platforms/discord.md (schema v1)
luffy-aiagent Jul 4, 2026
633a887
docs(platforms): docs/platforms/_template.md (schema v1)
luffy-aiagent Jul 4, 2026
93848ee
docs(platforms): docs/platforms/telegram.md (schema v1)
luffy-aiagent Jul 4, 2026
6e364c1
docs(platforms): docs/platforms/googlechat.md (schema v1)
luffy-aiagent Jul 4, 2026
af550e9
docs(platforms): docs/platforms/feishu.md (schema v1)
luffy-aiagent Jul 4, 2026
cf47c7c
docs(platforms): docs/platforms/slack.md (schema v1)
luffy-aiagent Jul 4, 2026
4c794eb
docs(platforms): docs/platforms/line.md (schema v1)
luffy-aiagent Jul 4, 2026
3f36ef5
docs(platforms): docs/platforms/teams.md (schema v1)
luffy-aiagent Jul 4, 2026
2c3c9df
docs(platforms): docs/platforms/README.md (schema v1)
luffy-aiagent Jul 4, 2026
6882150
docs(platforms): single date schema version, drop front-matter — docs…
luffy-aiagent Jul 4, 2026
417411c
docs(platforms): single date schema version, drop front-matter — docs…
luffy-aiagent Jul 4, 2026
049271f
docs(platforms): single date schema version, drop front-matter — docs…
luffy-aiagent Jul 4, 2026
670b1e1
docs(platforms): single date schema version, drop front-matter — docs…
luffy-aiagent Jul 4, 2026
71cfc1e
docs(platforms): single date schema version, drop front-matter — docs…
luffy-aiagent Jul 4, 2026
a73a213
docs(platforms): single date schema version, drop front-matter — docs…
luffy-aiagent Jul 4, 2026
4c0d70a
docs(platforms): single date schema version, drop front-matter — docs…
luffy-aiagent Jul 4, 2026
c35226a
docs(platforms): single date schema version, drop front-matter — docs…
luffy-aiagent Jul 4, 2026
cbbc245
docs(platforms): single date schema version, drop front-matter — docs…
luffy-aiagent Jul 4, 2026
9a2ae6b
docs(platforms): single date schema version, drop front-matter — docs…
luffy-aiagent Jul 4, 2026
d54890e
docs(platforms): add _template.toml — machine-readable schema (Option…
luffy-aiagent Jul 7, 2026
4d51e77
docs(platforms): enumerate all 16 openab_features in _template.toml
luffy-aiagent Jul 7, 2026
00912ba
docs(platforms): source points to file (+optional #symbol), not line …
luffy-aiagent Jul 7, 2026
5c401b8
docs(platforms): tighten _template.toml per review
luffy-aiagent Jul 7, 2026
2c9401f
feat(platforms): machine-readable schema/*.toml + conformance tests
luffy-aiagent Jul 7, 2026
b9b0af9
refactor(platform-schema): serde structs as the authoritative schema
luffy-aiagent Jul 8, 2026
510541c
docs(platforms): address review — version, EOF newlines, PR refs, sou…
luffy-aiagent Jul 8, 2026
b1b3fe4
docs(platforms): drop the .md pages — schema/*.toml is the single format
luffy-aiagent Jul 8, 2026
71f3794
feat(platforms): add 4 optional capability fields
luffy-aiagent Jul 8, 2026
598e1c1
Merge remote-tracking branch 'upstream/main' into docs-platforms-line
luffy-aiagent Jul 8, 2026
a8cbb40
feat(platforms): add cron_dispatch to the openab-feature closed set
luffy-aiagent Jul 8, 2026
2024d06
refactor(oabctl): move --with-schedule to independent schedule create…
chaodu-agent Jul 9, 2026
5c26194
fix: align doc comment with actual size range (0-100)
chaodu-agent Jul 9, 2026
a43bcba
docs(platforms): add missing cron_dispatch to README feature table
chaodu-agent Jul 9, 2026
f56eca4
docs(platforms): add workflow guide for updating features, platforms,…
chaodu-agent Jul 9, 2026
6a12972
docs: add platform schema section to CONTRIBUTING.md
chaodu-agent Jul 9, 2026
40eefa3
docs(platforms): add architecture diagram to README
chaodu-agent Jul 9, 2026
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
27 changes: 27 additions & 0 deletions .github/workflows/platform-schema-conformance.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: platform-schema conformance

# Verify docs/platforms/schema/*.toml stays in sync with the code: structural
# schema validation + that every `source` code-ref still exists in the tree.
# Runs on any change to the schema files, the template, or the checker itself.
on:
pull_request:
paths:
- "docs/platforms/schema/**"
- "docs/platforms/_template.toml"
- "crates/platform-schema/**"
push:
branches: [main]
paths:
- "docs/platforms/schema/**"
- "docs/platforms/_template.toml"
- "crates/platform-schema/**"

jobs:
conformance:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
# Standalone crate (serde + toml only); excluded from the root workspace
# so it builds without the heavy adapter crates.
- run: cargo test --manifest-path crates/platform-schema/Cargo.toml
12 changes: 12 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,18 @@ gh run view <run_id> --repo openabdev/openab --json conclusion -q .conclusion
- Run `cargo clippy` and address warnings
- Keep PRs focused — one feature or fix per PR

## Platform Schema

When modifying a platform adapter (`crates/openab-gateway/src/adapters/*.rs`), check whether the change affects the platform's documented capabilities or feature status. If it does, update the corresponding `docs/platforms/schema/<platform>.toml`.

See [`docs/platforms/README.md`](docs/platforms/README.md) for:
- The three-schema structure (capability, feature-support, quirks)
- How to add a new feature to the closed set
- How to add a new platform
- Architecture: TOML (machine facts) vs `docs/<platform>.md` (human setup guide)

CI runs conformance tests on schema changes — missing features, invalid enums, or broken code-ref `source` fields will fail the build.

## PR Lifecycle

Every PR follows a label-driven lifecycle that keeps the review loop moving.
Expand Down
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[workspace]
members = ["crates/openab-core", "crates/openab-gateway"]
exclude = ["openab-agent"]
exclude = ["openab-agent", "crates/platform-schema"]

[package]
name = "openab"
Expand Down
1 change: 1 addition & 0 deletions crates/platform-schema/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target
163 changes: 163 additions & 0 deletions crates/platform-schema/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 16 additions & 0 deletions crates/platform-schema/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
[package]
name = "platform-schema"
version = "0.1.0"
edition = "2021"
publish = false
description = "Authoritative types + conformance tests for docs/platforms/schema/*.toml"

# Standalone crate (excluded from the root workspace) so it builds independently
# of the heavy adapter crates. The serde structs below ARE the schema; each
# schema/<platform>.toml deserializes into `Platform`.
#
# Run: cargo test (from this directory)

[dependencies]
serde = { version = "1", features = ["derive"] }
toml = "0.8"
Loading
Loading