Skip to content

Commit a636bbb

Browse files
authored
Marketplace prep: official icon, CHANGELOG, PUBLISHING guide, metadata (#16)
- Replace the hand-rolled phone SVG with the official agent-device mark (purple #8232FF) from the agent-device docs site - media/icon.png 128x128: official mark centered on #3b2860 (sampled from agent-device-banner.jpg), rendered via sharp - galleryBanner.color updated to #3b2860 so the marketplace listing banner matches the icon background - package.json: bump 0.0.1 -> 0.1.0, add icon, keywords, homepage, bugs.url, galleryBanner, preview: true; drop "private": true so the marketplace will accept the package; tighten description - CHANGELOG.md (Keep a Changelog) seeded with [0.1.0] release notes - PUBLISHING.md: end-to-end ops guide — publisher creation, PAT, vsce login, release pipeline, smoke-install, pre-release flag, Open VSX mirror via ovsx, rollback strategy - README: CI badge, MIT badge, links to LICENSE, CHANGELOG, PUBLISHING Doesn't change runtime behavior. Open before publishing: register the "agent-device" publisher (or whatever ID you settle on) at marketplace.visualstudio.com and update package.json.publisher.
1 parent 3d97ea8 commit a636bbb

6 files changed

Lines changed: 211 additions & 10 deletions

File tree

CHANGELOG.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# Changelog
2+
3+
All notable changes to this extension will be documented in this file.
4+
5+
The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6+
7+
## [Unreleased]
8+
9+
## [0.1.0] - 2026-05-03
10+
11+
Initial public release.
12+
13+
### Authoring
14+
15+
- TextMate grammar for `.ad` files (commands, `@eN` refs, flags, double-quoted strings, `${VAR}` interpolation, `#` comments).
16+
- Completion: top-level commands, command-scoped flags, `context` keys, `find` sub-actions.
17+
- Variable completion inside `${...}` (built-in `AD_*` plus `env`-defined names).
18+
- Element-ref (`@eN`) completion populated from the latest `snapshot -i` output.
19+
- Platform value completion + diagnostic for `--platform` / `context platform=`.
20+
- Hover docs for commands, directives, and flags.
21+
22+
### Running
23+
24+
- Run Output panel in the bottom container with a workspace-wide `.ad` file picker, live per-step status, expandable stdout / stderr / error blocks with copy buttons, and a Stop button that kills the in-flight subprocess.
25+
- CodeLenses on every action line: `▶ Run` (this line only) and `▶ Run up to here`.
26+
- Native gutter test icons via per-step `TestItem`s with ranges.
27+
- Test Explorer integration — runs from any entry point (panel, CodeLens, palette, native gutter) all reflect in the Testing view.
28+
- Status-bar pill + popup notifications on success / failure / cancellation.
29+
- Keybinding: `Ctrl+Shift+Enter` / `Cmd+Shift+Enter` runs the active `.ad`.
30+
31+
### Templates
32+
33+
- `+ New` opens a QuickPick of nine starter templates (empty, iOS / Android Settings smoke, login flow, search & assert, scroll & discover, swipe gestures, visual baseline, React Native + Metro).
34+
35+
### Devices
36+
37+
- Sidebar tree of every iOS simulator and Android AVD, grouped by platform with booted entries floated.
38+
- Boot / Shut down with inline icons, right-click, palette, and quick-pick fallbacks. iOS uses `xcrun simctl` directly; Android uses `emulator -avd` and `adb emu kill`.
39+
40+
### Snapshot Inspector
41+
42+
- Sidebar view with a tree of `@eN` refs from the most recent snapshot. Click a row to insert at the cursor; copy and search affordances built in.
43+
- `Refresh Snapshot` and `Clear Snapshot` commands wired to the view title.
44+
45+
### Reports
46+
47+
- Self-contained HTML run reports under `<workspace>/.agent-device-reports/<iso-timestamp>/index.html`. Sticky toolbar with search, status filter pills, expand-all toggle, per-step copy buttons, and prefers-color-scheme support.
48+
49+
### Settings
50+
51+
- Sidebar Settings panel with a User / Workspace scope toggle, source labels per field, and per-field reset.
52+
- `agentDevice.cliPath`, `session`, `androidSdkPath`, `report.enabled`, `notifications.enabled`.
53+
54+
### Tooling
55+
56+
- Strict TypeScript, oxlint + oxfmt, vitest unit tests for the parsers and helpers, GitHub Actions CI.

PUBLISHING.md

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
# Publishing to the VS Code Marketplace
2+
3+
These steps assume the work that's already in this repo: the `package.json` `publisher`, `version`, `icon`, `keywords`, `repository`, `bugs`, `homepage`, `galleryBanner`, and `preview` fields are configured. The `LICENSE`, `README.md`, and `CHANGELOG.md` are present. CI is green on `main`.
4+
5+
## One-time setup
6+
7+
1. **Create a publisher**
8+
9+
Visit <https://marketplace.visualstudio.com/manage> and sign in with the Microsoft account that should own the listing. Click "Create publisher" and pick an ID. Update `package.json` `publisher` to match.
10+
11+
> Right now `package.json` has `"publisher": "agent-device"`. That string must match a publisher you (or your org) actually own on the marketplace.
12+
13+
2. **Create a Personal Access Token (PAT)**
14+
15+
Go to <https://dev.azure.com> → User settings → Personal access tokens → New token.
16+
- Organization: **All accessible organizations**
17+
- Scopes: **Custom defined****Marketplace****Manage**
18+
- Expiration: pick something you can rotate (90 days is the maximum)
19+
20+
Copy the token. It is shown once.
21+
22+
3. **Log in `vsce` locally**
23+
24+
```bash
25+
npx vsce login <publisher>
26+
# paste the PAT when prompted
27+
```
28+
29+
The token is cached under `~/.vsce`. You won't need to re-paste it for subsequent publishes from the same machine.
30+
31+
## Each release
32+
33+
1. **Bump the version** in `package.json` (semver). Update `CHANGELOG.md` to add a section for the new version and move items out of `[Unreleased]`.
34+
35+
2. **Sanity check** — the same checks CI runs:
36+
37+
```bash
38+
npm run lint
39+
npm run format:check
40+
npm test
41+
npm run compile
42+
npm run package # produces agent-device-vscode-<version>.vsix
43+
```
44+
45+
3. **Smoke-install the `.vsix`** locally:
46+
47+
```bash
48+
code --install-extension agent-device-vscode-<version>.vsix
49+
```
50+
51+
Open a folder with `.ad` files, click the Agent Device tab, run a script.
52+
53+
4. **Publish**:
54+
55+
```bash
56+
npx vsce publish
57+
```
58+
59+
Or, to bump and publish in one step:
60+
61+
```bash
62+
npx vsce publish patch
63+
npx vsce publish minor
64+
npx vsce publish major
65+
```
66+
67+
These bump `package.json` for you, commit the bump, and tag.
68+
69+
5. **Tag and push** if you bumped manually:
70+
71+
```bash
72+
git tag v$(node -p "require('./package.json').version")
73+
git push --tags
74+
```
75+
76+
6. **Verify on the marketplace** at `https://marketplace.visualstudio.com/items?itemName=<publisher>.agent-device-vscode`.
77+
78+
## Pre-release vs stable
79+
80+
`package.json` currently has `"preview": true`. That marks the listing as a preview in the marketplace UI but does **not** make it a pre-release in the install-flow sense. To publish as a pre-release that only users opting into pre-releases see:
81+
82+
```bash
83+
npx vsce publish --pre-release
84+
```
85+
86+
When you're ready to flip to stable, drop `"preview": true` from `package.json` and run `npx vsce publish` (or `vsce publish minor` for a 1.0 push).
87+
88+
## Open VSX (Cursor, VSCodium, code-server, …)
89+
90+
VS Code Marketplace listings don't auto-mirror to Open VSX. To support Cursor and the other forks:
91+
92+
1. Create an account at <https://open-vsx.org>.
93+
2. Generate an access token under your profile.
94+
3. Publish:
95+
96+
```bash
97+
npx ovsx publish agent-device-vscode-<version>.vsix --pat <token>
98+
```
99+
100+
You can wire this into CI later (the `HaaLeo/publish-vscode-extension` GitHub Action handles both marketplaces from one workflow).
101+
102+
## Rollback
103+
104+
The marketplace doesn't support deleting a published version. To roll back:
105+
106+
1. Bump the version (`patch` is fine).
107+
2. Revert the offending commit on `main`.
108+
3. `npx vsce publish patch` to ship the older code under the new version.
109+
110+
## Known checks the marketplace runs
111+
112+
- `package.json` must not have `"private": true` (we already removed it).
113+
- `LICENSE` must exist (it does; MIT).
114+
- `icon` must point to a 128×128 PNG (it does — `media/icon.png`, the official agent-device mark in `#8232FF` on the brand dark purple `#3b2860`).
115+
- The README, CHANGELOG, and LICENSE are bundled into the `.vsix` (default vsce behavior).
116+
117+
If a publish fails, run `npx vsce ls` to inspect what's actually being included in the `.vsix` and `npx vsce package` to produce a local copy you can test.

README.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# Agent Device for VS Code
22

3+
[![CI](https://github.com/azizbecha/agent-device-vscode/actions/workflows/ci.yml/badge.svg)](https://github.com/azizbecha/agent-device-vscode/actions/workflows/ci.yml)
4+
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
5+
36
Author, run, and inspect [agent-device](https://incubator.callstack.com/agent-device) `.ad` scripts inside VS Code — Vitest-style.
47

58
![Agent Device for VS Code — overview](media/screenshots/overview.png)
@@ -106,6 +109,10 @@ examples/
106109

107110
The runner spawns the `agent-device` CLI per step (so cancellation kills the in-flight subprocess immediately), parses `.ad` itself for variable interpolation and step-by-step events, and emits a typed event stream that every UI surface consumes.
108111

112+
## Releases
113+
114+
See [CHANGELOG.md](CHANGELOG.md). Publishing is documented in [PUBLISHING.md](PUBLISHING.md).
115+
109116
## License
110117

111-
MIT.
118+
[MIT](LICENSE).

media/agent-device.svg

Lines changed: 2 additions & 4 deletions
Loading

media/icon.png

807 Bytes
Loading

package.json

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,37 @@
11
{
22
"name": "agent-device-vscode",
33
"displayName": "Agent Device",
4-
"version": "0.0.1",
5-
"private": true,
6-
"description": "Author, run, and inspect agent-device .ad scripts inside VS Code.",
4+
"version": "0.1.0",
5+
"description": "Author, run, and inspect agent-device .ad scripts inside your IDE.",
76
"categories": [
87
"Other",
98
"Programming Languages",
109
"Testing"
1110
],
11+
"keywords": [
12+
"ad",
13+
"agent-device",
14+
"android",
15+
"appium",
16+
"automation",
17+
"e2e",
18+
"ios",
19+
"playwright",
20+
"react-native",
21+
"replay",
22+
"simulator",
23+
"testing"
24+
],
25+
"homepage": "https://github.com/callstackincubator/agent-device#readme",
26+
"bugs": {
27+
"url": "https://github.com/callstackincubator/agent-device/issues"
28+
},
1229
"license": "MIT",
1330
"repository": {
1431
"type": "git",
15-
"url": "https://github.com/azizbecha/agent-device-vscode"
32+
"url": "https://github.com/callstackincubator/agent-device"
1633
},
17-
"publisher": "agent-device",
34+
"publisher": "azizbecha",
1835
"main": "./out/extension.js",
1936
"scripts": {
2037
"vscode:prepublish": "npm run compile",
@@ -262,6 +279,12 @@
262279
"onView:agentDevice.settings",
263280
"onView:agentDevice.snapshotInspector"
264281
],
282+
"icon": "media/icon.png",
283+
"galleryBanner": {
284+
"color": "#3b2860",
285+
"theme": "dark"
286+
},
287+
"preview": true,
265288
"engines": {
266289
"vscode": "^1.95.0"
267290
}

0 commit comments

Comments
 (0)