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
5 changes: 2 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,13 @@

All notable changes to @rpamis/comet will be documented in this file.

## What's Changed [0.4.0-beta.20] - 2026-08-16
## What's Changed [0.4.0-beta.19] - 2026-08-15

### Added

- **Grok platform support**: `comet init`, `comet update`, `comet doctor`, and `comet uninstall` now treat Grok as a first-class host. Skills, rules, and the Hook Router live under `.grok/skills/`, `.grok/rules/`, and `.grok/hooks/comet.json`. The Router recognizes `--platform grok` and matches Grok's native `write` / `search_replace` tools.
- **Repository-owned Native pull-request finish providers**: Projects can opt into a structured repository command for PR title, body, template, and policy validation while Comet retains commit, push, remote base/head/SHA verification, existing-PR reuse, recoverable failure state, and safe worktree cleanup.

## What's Changed [0.4.0-beta.19] - 2026-08-15

### Changed

- **Dashboard artifact previews**: Fullscreen previews now close with Escape, keep long tables horizontally scrollable, preserve readable table headers, and use a larger directory navigation scale.
Expand Down
3 changes: 2 additions & 1 deletion README-zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -439,7 +439,7 @@ comet eval ./my-skill --suite langsmith --html

## 支持平台

`comet init` 支持 34 个 AI 编码平台:
`comet init` 支持 35 个 AI 编码平台:

<details>
<summary>查看完整平台列表</summary>
Expand All @@ -463,6 +463,7 @@ comet eval ./my-skill --suite langsmith --html
| ForgeCode | `.forge/` | Trae | `.trae/` |
| Trae CN | `.trae-cn/` | ZCode | `.zcode/` |
| MimoCode | `.mimocode/` | CoStrict | `.cospec/` |
| Grok | `.grok/` | | |

</details>

Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -468,7 +468,7 @@ does not expand the backend command list; see the [Skill creation guide](docs/op

## Supported Platforms

`comet init` supports 34 AI coding platforms:
`comet init` supports 35 AI coding platforms:

<details>
<summary>View full platform list</summary>
Expand All @@ -492,6 +492,7 @@ does not expand the backend command list; see the [Skill creation guide](docs/op
| ForgeCode | `.forge/` | Trae | `.trae/` |
| Trae CN | `.trae-cn/` | ZCode | `.zcode/` |
| MimoCode | `.mimocode/` | CoStrict | `.cospec/` |
| Grok | `.grok/` | | |

</details>

Expand Down
14 changes: 6 additions & 8 deletions app/commands/init.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { platformSelectPrompt } from './platform-select-prompt.js';
import {
PLATFORMS,
getPlatformSkillsDir,
resolveOpenSpecMirrorPlatformIds,
type Platform,
} from '../../platform/install/platforms.js';
import {
Expand Down Expand Up @@ -709,15 +710,10 @@ export async function initCommand(

const spPlatformIds = plans.filter((p) => p.spAction !== 'skip').map((p) => p.platform.id);

// OpenCode-compatible platforms reuse the opencode OpenSpec tool id; mirror
// the opencode output into their platform-specific config directories.
const selectedPlatformIdsForOs = plans
.filter((p) => p.osAction !== 'skip')
.map((p) => p.platform.id);
const mirrorOpenCodePlatformIds = selectedPlatformIdsForOs.filter((id) =>
['zcode', 'mimocode'].includes(id),
);
const mirrorCodeBuddyPlatformIds = selectedPlatformIdsForOs.filter((id) => id === 'workbuddy');
const mirrorPlatformIds = resolveOpenSpecMirrorPlatformIds(selectedPlatformIdsForOs);

const selectedNpmDeps = await selectNpmDeps(
projectPath,
Expand Down Expand Up @@ -779,13 +775,15 @@ export async function initCommand(
osToolIds,
scope,
shouldInstallOpenSpecCli,
mirrorOpenCodePlatformIds,
mirrorPlatformIds,
scope === 'project' ? workflowDecision?.classicArtifactLayout : 'legacy',
assertClassicProjectMutationAllowed,
(error) => {
osFailureReason = error.message;
},
mirrorCodeBuddyPlatformIds,
[],
[],
selectedPlatformIdsForOs,
);
if (osGlobalStatus === 'installed' && requiresClassicArtifactRoot) {
await assertClassicProjectMutationAllowed?.();
Expand Down
15 changes: 7 additions & 8 deletions app/commands/update.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ import {
import {
getPlatformSkillsDir,
getPlatformSkillsDirs,
resolveOpenSpecMirrorPlatformIds,
type Platform,
} from '../../platform/install/platforms.js';
import { resolvePlatformTarget } from '../../platform/install/platform-targets.js';
Expand Down Expand Up @@ -1824,12 +1825,8 @@ async function updateSingleProject(
scopeTargets.length === 0;
if (scopeTargets.length === 0 && !requiresArtifactOnlyRefresh) continue;
const toolIds = [...new Set(scopeTargets.map((target) => target.platform.openspecToolId))];
const mirrorOpenCodePlatformIds = scopeTargets
.map((target) => target.platform.id)
.filter((id) => id === 'zcode' || id === 'mimocode');
const mirrorCodeBuddyPlatformIds = scopeTargets
.map((target) => target.platform.id)
.filter((id) => id === 'workbuddy');
const selectedPlatformIds = scopeTargets.map((target) => target.platform.id);
const mirrorPlatformIds = resolveOpenSpecMirrorPlatformIds(selectedPlatformIds);
const artifactLayout = scope === 'project' ? classicArtifactLayout : 'legacy';
try {
if (scope === 'project') {
Expand All @@ -1840,11 +1837,13 @@ async function updateSingleProject(
toolIds,
scope,
!skipPackageSelfUpdate,
mirrorOpenCodePlatformIds,
mirrorPlatformIds,
artifactLayout,
scope === 'project' ? assertClassicProjectMutationAllowed : undefined,
undefined,
mirrorCodeBuddyPlatformIds,
[],
[],
selectedPlatformIds,
);
if (status === 'failed') {
openSpecStatus = 'failed';
Expand Down
2 changes: 1 addition & 1 deletion assets/manifest.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"version": "0.4.0-beta.20",
"version": "0.4.0-beta.19",
"skills": [
"comet/SKILL.md",
"comet/agents/openai.yaml",
Expand Down
Loading
Loading