ryan
f4975d6732
refactor(plugins): restructure admin and message_gateway into standard layered sub-packages
2026-08-28 22:33:26 +08:00
ryan
b68060255f
docs(plugins): add plugin layered architecture spec and templates
2026-08-28 20:35:11 +08:00
ryan
acad091127
docs: add implementation plan for zero-redis pluggable architecture
2026-08-28 15:11:03 +08:00
ryan
299ac30ee4
refactor(core): align with cordis spatiotemporal composability architecture
...
- Purify core micro-kernel by removing context hardcoded helpers and reverse dependencies
- Eliminate init() side effects in infra plugins with reversible lifecycle disposal
- Completely isolate plugins by removing cross-plugin imports and using core/contracts
- Introduce TaskService and RiskControlService contracts for unified cross-plugin APIs
- Regenerate Swagger documentation and update developer guide matrix
- Achieve 0 violations in check_cordis_architecture.sh and 100% test pass
2026-08-28 15:05:31 +08:00
ryan
fc7fae7b0e
docs: add design spec for zero-redis pluggable architecture
2026-08-28 14:02:28 +08:00
ryan
0b4e928d1a
docs(core): add cordis architecture alignment implementation plan
2026-08-28 13:32:55 +08:00
ryan
0bc19e34cb
docs(core): add cordis architecture alignment design spec
2026-08-28 13:32:05 +08:00
ryan
e19bf36580
refactor(core): align architecture with cordis spatiotemporal composability
2026-08-28 13:28:58 +08:00
ryan
33b38f8687
docs(migration): update docs and skills for new migration architecture
...
Update all relevant documentation and skills to reflect:
- w_schema_versions shared version table with plugin_id discriminator
- Single 00001_initial.sql per plugin (merged from multi-file approach)
- gooseEngine uses goose.NewProvider with goose.WithStore(sharedStore)
- pkg/migrator deleted, all 26 global SQL files moved to per-plugin
- DDL/DML single-file approach (merged seed + schema)
Files updated:
- .agents/skills/database-migration/SKILL.md (full rewrite)
- docs/WAVELET_WHITE_PAPER.md (table matrix + migration check)
- docs/WAVELET_DEVELOPER_GUIDE.md (scenario 9)
- docs/superpowers/specs/2026-08-27-cordis-plugin-architecture-design.md
- docs/superpowers/specs/2026-08-27-cordis-downstream-developer-guide.md
2026-08-28 12:45:58 +08:00
ryan
530a9dd3ee
refactor(migration): delete pkg/migrator, move SQL to per-plugin embed
...
BREAKING: pkg/migrator/ deleted entirely. Migration SQL files are now
owned by each plugin in its own migrations/ directory.
Architecture:
- Delete pkg/migrator/ (26 global SQL files + ClickHouse migration)
- Move global SQL to per-plugin migrations/ with go:embed + Register()
- Rewrite cmd/app.go gooseEngine: uses Inject[DBService] for DB, iterates
all plugin-registered MigrationEntry, runs goose.Up per entry
- core.MigrationEngine.Migrate signature changed: *Context instead of
context.Context, so engine can resolve services via IoC
Per-plugin migration ownership:
auth/ → w_access_tokens, w_auth_sources, w_external_accounts
user/ → w_users (seed system user)
admin/ → w_system_configs, w_templates (seeds)
upload/ → w_uploads, w_upload_stats
message_gateway/ → w_push_*, w_message_*
risk_control/ → w_user_access_logs (PG + ClickHouse)
driver_asynq_cron/ → w_schedules
driver_asynq_worker/ → w_task_executions
Dependencies:
- cmd/banner.go: removed migration report display (migrations are automatic)
- cmd/reset_passwd.go: removed PreRun migrator.Migrate() call
- go.mod: clickhouse-go kept (used by plugins/infra/database/clickhouse.go)
2026-08-28 12:19:25 +08:00
ryan
416603b616
fix(persistence): migrate all pkg/persistence imports to plugins/infra/database and plugins/infra/cache
...
- Replace db.DB(ctx) with database.DB(ctx) from plugins/infra/database
- Replace db.Redis/db.PrefixedKey/db.GetJSON/db.SetJSON with cachepkg.* from plugins/infra/cache
- Replace pkg/persistence/idgen with pkg/idgen (already exists)
- Replace pkg/persistence/batchwriter with pkg/batchwriter (already exists)
- Replace pkg/persistence/migrator with pkg/migrator (already exists)
- Replace pkg/persistence/logstore with plugins/domain/risk_control/logstore
- Delete defunct pkg/{persistence,cap,message_gateway,push,shared,task}
- Fix vet issues: db alias in domain_test.go, driver_asynq_worker.TaskHandler reference
- Update Makefile architecture guard
- Update docs and skill references
- Update go.mod: gorilla/sessions promotion to direct dependency
2026-08-28 10:59:24 +08:00
ryan
3792313797
docs: add cordis plugin architecture implementation plan
2026-08-27 23:38:02 +08:00
ryan
40de54fe5b
docs: add cordis downstream developer guide and cookbook
2026-08-27 23:33:12 +08:00
ryan
360f4f432c
docs: add cordis microkernel and plugin architecture design spec
2026-08-27 23:24:34 +08:00
ryan
8b1eb9ca0d
docs(message-gateway): add Wavelet message gateway implementation plan
2026-08-16 11:59:59 +08:00
ryan
e36db8a56c
docs(message-gateway): add Wavelet inbound channel gateway design spec
2026-08-16 11:55:57 +08:00
ryan
9c1369186f
docs(i18n): add frontend bilingual i18n design spec
...
Capture the approved next-intl non-routing approach for zh-CN/en,
locale resolution, static-export constraints, and phase-1 core-path scope.
2026-07-24 16:08:45 +08:00