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
350 changes: 350 additions & 0 deletions .agents/plugins/evaluations/contentcloud-video-production-0.25.0.json

Large diffs are not rendered by default.

12 changes: 6 additions & 6 deletions .agents/plugins/registry.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,18 @@
{
"id": "contentcloud-video-production",
"kind": "scene_plugin",
"version": "0.24.0",
"version": "0.25.0",
"source": {
"repository": "https://github.com/limecloud/contentcloud",
"ref": "v0.24.0"
"ref": "v0.25.0"
},
"license": "Apache-2.0",
"digest": "sha256:067457d347d3207c5c675f13f1e75895dcb1322eead6f187b763d4a573f0c1b5",
"digest": "sha256:e8dabc6ebae6f9a9c264a16a7083e4c7da45aef1e12d68690dc69297691bf9d4",
"signature": {
"status": "verified",
"algorithm": "ed25519",
"key_id": "contentcloud-plugin-release-2026-07",
"value": "oFc8lJwU8+jxguKDPV950EafKyPmZygi1LfiMFdGMAIbHDx8ECCUmQ4PFzHLE9pTreANr3KO5I6//u+E34mKBw=="
"value": "Acl1ei4XN2GR6Oxnzk6KtGBjrdvyegRcMcuMHT6WM/T/X62S2iDp+/NeqSNnzff1J4ff3tANHLO3AJq031a9Dg=="
},
"compatible_profiles": [
"contentcloud.video-production"
Expand Down Expand Up @@ -54,8 +54,8 @@
],
"evaluation": {
"status": "passed",
"report": ".agents/plugins/evaluations/contentcloud-video-production-0.24.0.json",
"digest": "sha256:dcb270d2df5398d1c44eebf84f2c6e1319ef6c7214106d2501411f9023f4c33f",
"report": ".agents/plugins/evaluations/contentcloud-video-production-0.25.0.json",
"digest": "sha256:3fd4adeec6fbbcac651dbb05723c30b0a7dfe27f3af7742a3e455c0039aae555",
"evidence": [
"codex-plugin-transaction",
"bootstrap-confirmation",
Expand Down
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,19 @@

ContentCloud 的重要变更记录在此文件中。

## [0.25.0] - 2026-08-12

### Added

- 增加官网能力状态表与三执行平面叙事,明确本地生产、服务端治理、Durable Runtime 和外部渠道的当前边界。
- 增加 Studio 创作上下文栏和组合式任务入口,将当前任务、最近任务、资料与已有结果收敛到同一工作面。

### Changed

- 官网重构为中性白色工作室层级,保留自然光场景并以冰川蓝作为品牌与焦点色。
- Studio、共享 Work OS 表面和设计系统统一为紧凑导航、开放工作面、近黑命令和清亮蓝焦点。
- Server、Worker、Web、CLI、Plugin、MCP 和 Environment Profile 统一升级到 `0.25.0`。

## [0.24.0] - 2026-08-11

### Added
Expand Down
63 changes: 34 additions & 29 deletions DESIGN.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@

## Visual Baseline

- `web/src/marketing/marketing.css` 中当前首页是品牌视觉基准。首页保留自然光创作空间作为全幅底层背景,并在其上叠加可维护的产品工作画布,直接表达任务输入、项目参考、创作任务、结果确认和交付关系;登录注册继续复用同一场景资产
- 工作台、平台后台、登录注册、文档和公开页面复用首页的颜色、Logo、字体与图标语言,但不复制营销页的大标题或内容编排。
- 工作面以冷白、中性边框和严格网格承载高频操作;深松绿只用于侧栏、主要命令和高权重状态面,不得覆盖主要内容区
- 颜色用于区分品牌、对象类型和系统状态。界面不能退化成只有深浅绿色的一色主题
- `web/src/marketing/marketing.css` 中当前首页是品牌视觉基准。首页以白色为主表面,用不对称的品牌叙事和真实任务工作面组成首屏;自然光创作空间只承载右侧场景氛围,不能压过产品品牌、任务状态和客户下一步
- 工作台、平台后台、登录注册、文档和公开页面复用首页的中性灰白、清亮蓝焦点、Logo、字体与图标语言,但不复制营销页的大标题或内容编排。
- 工作面以白色、浅灰背景、中性边框和严格网格承载高频操作;近黑色用于主要命令,清亮蓝只用于品牌、选中态、链接和焦点,侧栏保持白色,不得形成大面积蓝色区域
- 颜色用于区分品牌交互、对象类型和系统状态。品牌主题以白色为主、明亮蓝为辅,不使用粉色主题,也不把整个界面染成单一蓝色

## Brand Identity

Expand All @@ -24,10 +24,10 @@

### Logo

- Logo 使用 `30 x 30` 模块网格:六个深松绿模块形成开放的 `C`,右下青绿色模块表示可启用的内容能力
- Logo 使用 `30 x 30` 模块网格:六个清亮蓝模块形成开放的 `C`,右下浅天蓝模块表示可启用的内容能力
- 标志本身不包含文字、底框或装饰性渐变;需要品牌名时使用 `BrandLockup`,不得重复拼装另一套 Logo。
- 浅色表面:主图形 `#18271f`,信号模块 `#14b8a6`。
- 深色表面:主图形 `#f3f8f5`,信号模块 `#7ee0c3`。
- 浅色表面:主图形 `#4c91ff`,信号模块 `#8bd8ff`。
- 深色表面:主图形 `#ffffff`,信号模块 `#dbeafe`。
- 常规 UI 尺寸为 `30-46px`;favicon 使用带冷白底的独立版本,必须在 `16px` 下仍可辨认。

### Icons
Expand All @@ -40,37 +40,38 @@

### Brand And Commands

- **Pine / primary ink** `#18271f`:品牌主图形、深色侧栏、主要按钮和高权重命令。
- **Pine hover** `#0f1b15`。
- **Teal** `#007f78`:链接、焦点、栏目提示与浅色表面的可访问强调。
- **Signal teal** `#14b8a6`:Logo 信号模块、当前导航和少量生产状态强调。
- **Companion green** `#397860`:知识和辅助品牌关系,不承担主命令。
- **Mint** `#e9f5ef`:品牌柔和表面。
- **Ink command** `#172033`:主要按钮和高权重命令面;避免把主操作做成大块企业蓝。
- **Ink command hover** `#263149`。
- **Glacier blue** `#4c91ff`:品牌主图形、选中项和少量高权重焦点。
- **Link blue** `#3f83ef`:链接、导航选中态和信息状态。
- **Sky signal** `#8bd8ff`:Logo 信号模块和少量能力提示。
- **Focus blue** `#76b4ff`:键盘焦点环,不作为大面积背景。
- **Ice blue** `#eff6ff`:选中项、信息状态和来源对象的柔和表面。

### Surfaces

- **Page** `#f5f7f5`
- **Page** `#f8faff`
- **Panel** `#ffffff`
- **Subtle** `#fbfcfb`
- **Raised** `#edf1ed`
- **Marketing cream** `#fbfaf5`
- **Ink** `#132019`
- **Muted** `#6a756e`
- **Border** `#dfe5e0`
- **Subtle** `#fbfdff`
- **Raised** `#edf3f9`
- **Ink** `#172033`
- **Text** `#52627b`
- **Muted** `#65738c`
- **Border** `#e3eaf3`

### Content Categories

- **Sources** `#007f78` / `#e9f5ef`
- **Sources** `#4c91ff` / `#eff6ff`
- **Knowledge** `#397860` / `#edf4ef`
- **Strategy** `#3b6f8f` / `#edf4f8`
- **Production** `#b45b3c` / `#fff3ed`
- **Review** `#c24f5f` / `#fff1f2`

分类色表达对象类型和生产阶段,不表达成功或失败。即使品牌采用松绿体系,也必须保留蓝、陶红和玫红等对象色以提高扫描效率
分类色表达对象类型和生产阶段,不表达成功或失败。品牌采用明亮蓝白体系时,仍保留绿、蓝灰、陶红和玫红等对象色提高后台扫描效率;这些颜色只出现在内容分类和系统状态,不参与品牌主视觉

### Semantic States

- **Info** `#3b6f8f`
- **Info** `#4386ec`
- **Success** `#0b7f53`
- **Warning** `#a9651a`
- **Danger** `#c24f5f`
Expand Down Expand Up @@ -98,20 +99,20 @@

### Public Website

- 首屏以自然光创作空间建立品牌氛围,并叠加可维护的产品叙事画布;背景摄影不能代替产品能力,抽象 Agent 图和供应商 Logo 墙也不能作为首屏主体
- Hero 仍保持品牌优先、单一 CTA 组和下一段露出;产品画布只能在标题安全区之外承载任务输入、项目参考、任务和结果关系
- 首页紧接客户创作台、结果资产目录、资产复用闭环和平台分层架构,视觉内容必须来自产品文档与当前代码事实。
- 首屏以白色为主表面,用品牌标题与真实任务工作面形成单一构图;继续使用现有 `/images/content-work-os-studio.webp` 自然光场景,不替换图片、不生成新背景,也不增加蓝色滤镜
- Hero 保持品牌优先、单一 CTA 组和下一段露出;任务画布承载固定输入、人工确认、版本状态和唯一下一步,不做漂浮节点或纯装饰流程图
- 首页紧接客户创作流程、结果资产目录、资产复用闭环、三执行平面和能力状态表,视觉内容必须来自产品文档与当前代码事实。
- 首页内容状态来自 Registry 和文档目录,不静态承诺未实现能力。

### Authentication

- 桌面采用左侧首页同源场景图、右侧白色表单工作面的两栏布局。
- 移动端隐藏场景图,只显示完整表单;注册长表单必须在常用高度下可自然滚动。
- 表单不使用装饰卡片包裹,主要动作使用深松绿命令色
- 表单不使用装饰卡片包裹,主要动作使用近黑色命令面;桌面继续使用现有自然光场景图与原白色轻遮罩

### Workspace And Admin

- 侧栏使用深松绿,内容区使用冷白和中性边框;不得把整个后台染成绿色
- 侧栏使用白色与冰蓝选中面,内容区使用白色、浅灰背景和中性边框;不得出现大面积深蓝背景,也不得把整个后台染成蓝色
- 工作台优先扫描、比较和重复操作;平台后台优先租户、用户、能力开关与运行状态。
- 微信公众号文章按租户显式开关,视频剧本默认能力的状态表达不得依赖颜色猜测。

Expand All @@ -123,7 +124,7 @@
### Product Narrative Diagrams

- 产品介绍使用“任务输入与项目参考 -> Content Work OS 创作任务 -> 创作资产、交付和专业工具”的三段式叙事。
- 中心使用 `BrandLockup` 与“创作任务”文字,不使用机器人头像或“ContentCloud Agent”,避免暗示一个自主 Agent 拥有平台状态。
- 中心使用 `BrandLockup` 与“创作任务”文字,高权重核心面使用近黑命令色,不使用机器人头像或“ContentCloud Agent”,避免暗示一个自主 Agent 拥有平台状态。
- 客户叙事图与平台架构图分别维护。前者解释输入与结果,后者解释客户面、运营面、业务域、Runtime 和执行者边界。
- 工具节点先使用能力类别;供应商 Logo 只用于已验证集成或明确标记状态的示例,不做无边界 Logo 墙。
- 架构文档使用组件名称,不使用供应商 Logo 替代能力、契约或执行者类型。
Expand All @@ -149,3 +150,7 @@
| 2026-07-31 | 采用开放 C 模块 Logo 与青绿能力信号 | 同时表达 Content、可组合工作模块和按租户启用的内容能力。 |
| 2026-07-31 | 产品端切换为松绿品牌 token,保留多组对象色 | 形成同一主题,同时避免后台变成单一绿色界面。 |
| 2026-08-05 | 首页在自然光场景背景上叠加产品系统画布 | 用户明确要求保留首页背景图,同时直接体现资产目录、创作闭环、平台分层和多执行者关系。 |
| 2026-08-11 | 官网、后台与登录统一为明亮蓝白主题 | 用户否定石墨、青绿和暗蓝方案;保留原背景图,以白色、皇家蓝、天蓝和冰蓝形成更轻的统一视觉。 |
| 2026-08-11 | 官网能力叙事以 Infra 文档和公开目录为事实源 | 明确区分本地可用、服务端可用、执行框架已接通与外部依赖,避免把底层实现写成真实账号或自动发布已接通。 |
| 2026-08-12 | 对标参考站的中性工作室层级,蓝色只保留为焦点 | 用户否定大面积皇家蓝和高饱和天蓝;采用白色主表面、浅灰工作区、近黑命令、清亮蓝焦点,并将 Studio 调整为 `112px` 紧凑导航、约 `404px` 上下文栏和开放工作面。 |
| 2026-08-12 | 采用参考站的白色留白、胶囊控件和柔和浮层,品牌色改为冰川蓝 | 用户再次否定普通企业蓝观感;颜色只替代参考站的粉色强调,不把页面整体染蓝,官网保留原自然光背景图,登录、Studio 与后台共享同一套冷白表面和墨色命令。 |
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.24.0
0.25.0
2 changes: 1 addition & 1 deletion deploy/systemd/contentcloud.env.example
Original file line number Diff line number Diff line change
Expand Up @@ -50,5 +50,5 @@ CONTENTCLOUD_PI_AGENT_ENDPOINT=
CONTENTCLOUD_PI_AGENT_TOKEN=
CONTENTCLOUD_AGENT_SAAS_ENDPOINT=
CONTENTCLOUD_AGENT_SAAS_TOKEN=
CONTENTCLOUD_CAPABILITY_RELEASE_VERSION=0.24.0
CONTENTCLOUD_CAPABILITY_RELEASE_VERSION=0.25.0
CONTENTCLOUD_ENVIRONMENT_MANIFEST_TTL=24h
2 changes: 1 addition & 1 deletion deploy/systemd/environment-profile.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
{
"id": "contentcloud-video-production",
"kind": "scene_plugin",
"version": "0.24.0",
"version": "0.25.0",
"required": true,
"scope": "environment",
"capabilities": [
Expand Down
6 changes: 3 additions & 3 deletions docs/plugin/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ contentcloud-video-production/
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "contentcloud-video-production",
"version": "0.24.0",
"version": "0.25.0",
"description": "Governed local-first content production workflows.",
"author": {"name": "GoodVision"},
"license": "Apache-2.0",
Expand All @@ -94,7 +94,7 @@ contentcloud-video-production/
"contentcloud-local": {
"type": "stdio",
"command": "npx",
"args": ["--yes", "@limecloud/contentcloud@0.24.0", "mcp", "serve"],
"args": ["--yes", "@limecloud/contentcloud@0.25.0", "mcp", "serve"],
"cwd": "${PLUGIN_ROOT}"
}
}
Expand Down Expand Up @@ -276,7 +276,7 @@ Apply 失败时,只回滚本次 NativeChange;NativeChange 为空时不执行
{
"host": "codex",
"plugin_id": "contentcloud-video-production",
"version": "0.24.0",
"version": "0.25.0",
"package_digest": "sha256:...",
"state": "repair_required",
"error_code": "CODEX_PLUGIN_VERIFY_FAILED",
Expand Down
2 changes: 1 addition & 1 deletion docs/roadmap/v8/08-migration-testing-and-acceptance.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

截至 2026-08-11:

- 当前版本为 `v0.24.0`。Runtime Infra V2 的 I1~I4 核心切片、I5 第二业务流容量边界和 provider-neutral HTTP/异步轮询恢复切片已进入当前工作区;每个工作包仍须独立运行完整验证,不能沿用历史结果。
- 当前版本为 `v0.25.0`。Runtime Infra V2 的 I1~I4 核心切片、I5 第二业务流容量边界和 provider-neutral HTTP/异步轮询恢复切片已进入当前工作区;每个工作包仍须独立运行完整验证,不能沿用历史结果。
- V7 的类型化 Stage 输出、媒体领域、MediaReview、最终 Artifact、DeliveryPackage 和 Web 投影已在 `v0.16.0/v0.17.0` 落地;工作区资料文件夹、上传和资料引用已在 `v0.18.0` 首次落地。
- V8 已落地 JobRun/NodeRun/JobEvent、独立 RuntimeAttempt、RuntimeCommandStore、事件/outbox 同事务、不可变 outbox + subscriber receipts、终态业务结果持久化消费、fence/资源预留账本、StateCollection/StateRecord CAS、ToolCall、Checkpoint watermark、Fork/Replay、ContextView/AgentInstance、FakeHarness 调度闭环、Codex CLI JSONL/thread resume Harness、Provider inbox/账单对账、Yield/Resume、Projector 和 Runtime Explorer 投影重建/dry-run;各文档必须继续区分已实现内核、离线协议测试与生产能力。
- 内置 SOP Registry 只接受完整的平台身份(固定 ID、`template_key`、`built_in`、`source_ref`);按名称/形状认领旧短视频 SOP 和修复旧内置元数据的运行时迁移已删除,发现冲突时重建开发数据,不新增兼容分支。
Expand Down
14 changes: 7 additions & 7 deletions internal/cli/bootstrap_commands_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ func TestBootstrapPlanIsReadOnlyAndUsesOnlyPublicSessionID(t *testing.T) {
if err := json.Unmarshal(stdout.Bytes(), &envelope); err != nil {
t.Fatalf("decode output: %v; output=%s", err, stdout.String())
}
if !envelope.OK || envelope.Data.State != "ready" || !strings.HasPrefix(envelope.Data.PlanID, "bp_") || envelope.Data.CLIPackage != "@limecloud/contentcloud@0.24.0" || len(envelope.Data.Plugin.Actions) != 7 || !envelope.Data.WouldEnableDaemon {
if !envelope.OK || envelope.Data.State != "ready" || !strings.HasPrefix(envelope.Data.PlanID, "bp_") || envelope.Data.CLIPackage != "@limecloud/contentcloud@0.25.0" || len(envelope.Data.Plugin.Actions) != 7 || !envelope.Data.WouldEnableDaemon {
t.Fatalf("unexpected plan: %s", stdout.String())
}
if strings.Contains(stdout.String(), "connect_key") || envelope.Data.AuthorizationMode != "browser_device" || !envelope.Data.WouldAuthorizeDevice {
Expand Down Expand Up @@ -511,30 +511,30 @@ func TestRequireHealthyWorkspaceBlocksRegistration(t *testing.T) {
func successfulBootstrapRunner() *bootstrapRunner {
missingMarketplace := `{"marketplaces":[]}`
missingPlugin := `{"installed":[],"available":[]}`
currentMarketplace := `{"marketplaces":[{"name":"contentcloud","root":"/tmp/cache","marketplaceSource":{"sourceType":"git","source":"limecloud/contentcloud","ref":"v0.24.0"}}]}`
currentPlugin := `{"installed":[{"pluginId":"contentcloud-video-production@contentcloud","name":"contentcloud-video-production","marketplaceName":"contentcloud","version":"0.24.0","installed":true,"enabled":true}],"available":[]}`
currentMarketplace := `{"marketplaces":[{"name":"contentcloud","root":"/tmp/cache","marketplaceSource":{"sourceType":"git","source":"limecloud/contentcloud","ref":"v0.25.0"}}]}`
currentPlugin := `{"installed":[{"pluginId":"contentcloud-video-production@contentcloud","name":"contentcloud-video-production","marketplaceName":"contentcloud","version":"0.25.0","installed":true,"enabled":true}],"available":[]}`
return &bootstrapRunner{responses: []bootstrapRunnerResponse{
{stdout: missingMarketplace}, {stdout: missingPlugin},
{stdout: missingMarketplace}, {stdout: missingPlugin},
{stdout: `{"marketplaceName":"contentcloud","installedRoot":"/tmp/cache","alreadyAdded":false}`},
{stdout: `{"pluginId":"contentcloud-video-production@contentcloud","name":"contentcloud-video-production","marketplaceName":"contentcloud","version":"0.24.0","installedPath":"/tmp/plugin"}`},
{stdout: `{"pluginId":"contentcloud-video-production@contentcloud","name":"contentcloud-video-production","marketplaceName":"contentcloud","version":"0.25.0","installedPath":"/tmp/plugin"}`},
{stdout: currentMarketplace}, {stdout: currentPlugin},
}}
}

func successfulBootstrapUpgradeRunner() *bootstrapRunner {
oldMarketplace := `{"marketplaces":[{"name":"contentcloud","root":"/tmp/cache-old","marketplaceSource":{"sourceType":"git","source":"limecloud/contentcloud","ref":"v0.7.0"}}]}`
oldPlugin := `{"installed":[{"pluginId":"contentcloud-video-production@contentcloud","name":"contentcloud-video-production","marketplaceName":"contentcloud","version":"0.7.0","installed":true,"enabled":true}],"available":[]}`
currentMarketplace := `{"marketplaces":[{"name":"contentcloud","root":"/tmp/cache","marketplaceSource":{"sourceType":"git","source":"limecloud/contentcloud","ref":"v0.24.0"}}]}`
currentPlugin := `{"installed":[{"pluginId":"contentcloud-video-production@contentcloud","name":"contentcloud-video-production","marketplaceName":"contentcloud","version":"0.24.0","installed":true,"enabled":true}],"available":[]}`
currentMarketplace := `{"marketplaces":[{"name":"contentcloud","root":"/tmp/cache","marketplaceSource":{"sourceType":"git","source":"limecloud/contentcloud","ref":"v0.25.0"}}]}`
currentPlugin := `{"installed":[{"pluginId":"contentcloud-video-production@contentcloud","name":"contentcloud-video-production","marketplaceName":"contentcloud","version":"0.25.0","installed":true,"enabled":true}],"available":[]}`
return &bootstrapRunner{responses: []bootstrapRunnerResponse{
{stdout: oldMarketplace}, {stdout: oldPlugin},
{stdout: oldMarketplace}, {stdout: oldPlugin},
{stdout: oldMarketplace}, {stdout: oldPlugin},
{stdout: `{}`},
{stdout: `{}`},
{stdout: `{"marketplaceName":"contentcloud","installedRoot":"/tmp/cache","alreadyAdded":false}`},
{stdout: `{"pluginId":"contentcloud-video-production@contentcloud","name":"contentcloud-video-production","marketplaceName":"contentcloud","version":"0.24.0","installedPath":"/tmp/plugin"}`},
{stdout: `{"pluginId":"contentcloud-video-production@contentcloud","name":"contentcloud-video-production","marketplaceName":"contentcloud","version":"0.25.0","installedPath":"/tmp/plugin"}`},
{stdout: currentMarketplace}, {stdout: currentPlugin},
}}
}
Expand Down
2 changes: 1 addition & 1 deletion internal/cli/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ import (
builtinskills "github.com/limecloud/contentcloud/plugins/contentcloud-video-production/skills"
)

const Version = "0.24.0"
const Version = "0.25.0"

type Root struct {
json bool
Expand Down
Loading
Loading