@wojciechpiskorz/astroix 0.0.30 → 0.0.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +18 -23
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,49 +1,44 @@
1
1
  # Astroix
2
2
 
3
- A visual builder for Astro projects a dev-only integration where an AI agent does ~90% of the work, and you finish the last 10% (content tweaks, CSS polish) in a GUI instead of hunting through an unfamiliar codebase.
3
+ A standalone Electron parent app for Astro projects. An AI agent does ~90% of the work; Astroix finishes the last 10% content tweaks and CSS polish in a GUI instead of hunting through an unfamiliar codebase. You register an **existing** project, Astroix runs that project's own dev server under its supervision, renders the live site in a same-origin canvas, and edits the project's real files.
4
4
 
5
- **Status: scaffold.** The package structure, toolchain, CI, and the e2e fixture are in place; feature implementation is starting. Docs remain the source of truth.
5
+ **Zero injection**: no Astroix package, integration, bridge, config mutation, or control file ever enters your project only the explicit Content and CSS edits you make through the app.
6
6
 
7
- ## What it will do
7
+ **Status: Electron rewrite in progress (pre-alpha).** The former public npm integration is retired by design (ADR-0010); npm publication is paused. Delivery will be an unsigned, ad-hoc-sealed macOS (Apple Silicon) Electron pre-alpha for inner testers (ADR-0008). Docs are the source of truth.
8
8
 
9
- - **Content tab** — edit Astro Content Collections through forms generated from zod schemas; markdown body editing; writes real `.md` files.
10
- - **CSS tab** — click any element on the live canvas (same-origin iframe), see which rules style it and **where they live in your repo** (file + line), edit them in place (declaration widgets or raw CSS), and have changes written back to the source files with minimal diffs. Live bidirectional sync with your IDE.
9
+ ## What it does
11
10
 
12
- Core principle: **repo-mapping, not a parallel world** the builder reads and writes the same files an agent would, so the repo stays coherent for both humans and AI.
11
+ - **Content vertical** edit Astro Content Collections through forms generated from zod schemas; markdown body editing; auto-write (~300 ms debounce) to real `.md` files; inline validation that never blocks a draft.
12
+ - **CSS vertical** — click any element on the live canvas, see which repo rules style it and **where they live in your repo** (file + line, cascade winner marked), edit them in place (declaration widgets or raw CSS), and get minimal-diff writes back to the source files with live HMR. Bidirectional sync with your IDE; element selection survives reindex.
13
+
14
+ Core principle: **repo-mapping, not a parallel world** — the app reads and writes the same files an agent would, so the repo stays coherent for both humans and AI.
15
+
16
+ One active project session at a time; switching is transactional and never mixes projects' data. Web mode (the same control plane without Electron) is the deterministic behavioral test host.
13
17
 
14
18
  ## Docs
15
19
 
16
- - [`docs/spec.md`](docs/spec.md) — product spec: problem, solution, user stories, implementation decisions, testing strategy
20
+ - [`docs/spec.md`](docs/spec.md) — product spec: boundary, user stories, implementation decisions, testing doctrine
17
21
  - [`docs/stack.md`](docs/stack.md) — technology stack and the reasoning behind each choice
18
- - [`docs/core-reuse.md`](docs/core-reuse.md) — inventory of Astro/Vite core APIs reused instead of rebuilt
22
+ - [`docs/core-reuse.md`](docs/core-reuse.md) — Astro/Vite seams by class: public / certified exact-pair / fail-closed private
23
+ - [`CONTEXT.md`](CONTEXT.md) — domain glossary (ubiquitous language)
24
+ - [`docs/adr/`](docs/adr/) — architecture decision records (0004–0010 govern the rewrite)
19
25
 
20
26
  ## Scope
21
27
 
22
- Targets the latest Astro major only (`astro ^7`, Vite 8, zod 4) built for new projects and their maintenance, not for legacy support.
28
+ Certified against exact Astro/Vite pairs (first: `astro@7.2.10` + `vite@8.2.2`, resolved from each project's own installation); macOS 13.5+ on Apple Silicon; desktop UI only. No project scaffolding, no multi-project editing, no signing/notarization/auto-update in the pre-alpha.
23
29
 
24
30
  ## Development
25
31
 
26
- Requires [bun](https://bun.sh) and Node >= 22.12.
32
+ The repository is mid-migration to npm workspaces + Node 24 (chartered, ADR-0010); until that lane lands, the checkout still runs on bun and still contains the integration-era code as a retirement-bound migration oracle.
27
33
 
28
34
  ```sh
29
35
  bun install # also in e2e/fixture/
30
36
  bun run check && bun run typecheck # Biome + tsc
31
37
  bun run test # vitest (unit)
32
- bun run test:e2e # Playwright (boots e2e/fixture on :4314)
33
- bun run build # tsup (node) + vite (chrome bundle) → dist
38
+ bun run test:e2e # Playwright (integration-era oracle lanes)
34
39
  ```
35
40
 
36
- ### Dogfood loop
37
-
38
- The e2e fixture consumes the local package through `.astroix-local/` — a gitignored staging dir holding only the publish surface (`dist`, `package.json`, `README`, `LICENSE`), linked as `file:../../.astroix-local` (#123: a `file:` link to the repo root copies the whole checkout, nesting `node_modules` recursively). `bun run prepare-local` (run automatically before the fixture dev server boots) rebuilds `dist` when stale, re-syncs the staging dir, and refreshes the installed copy — so `bun run dev` in `e2e/fixture/` always serves the current build. A root `bun run dev` (tsup watch) plus a fixture dev server still works for iteration; re-run the fixture's dev script (or `bun run prepare-local`) to pick up each fresh build.
39
-
40
- ### Ports
41
-
42
- The owner's manual smoke owns `:4312` (`bun run smoke`); the e2e lanes never touch it — Playwright boots the main lane on `:4314` (`ASTROIX_E2E_PORT` in the fixture's dev script) and the npm-pack lane on `:4313` (`ASTROIX_E2E_PACK_PORT`); both ports stay canonical for CI, while parallel local lanes override the pair per worktree (#120) so sibling checkouts never race for — or adopt — each other's dev servers. Both lanes always boot their own servers (`reuseExistingServer: false`), and the fixture dev script runs astro with `--ignore-lock` — astro's per-project single-server guard would otherwise refuse the e2e instance while the owner's smoke server runs; both paths own their lifecycle externally (the smoke script pre-checks its port, Playwright kills its own servers).
43
-
44
- ### Definition of done (POC)
45
-
46
- The executable DoD is `e2e/loop.spec.ts` (the full CSS editing loop: chrome → select → rule list → CodeMirror edit → bytes on disk + canvas reflection), green in CI. The human half — the owner's manual smoke through the real chrome — is [`docs/manual-smoke.md`](docs/manual-smoke.md); `bun run smoke` prepares and boots the environment in one command.
41
+ Target workspace shape: `packages/core`, `packages/protocol`, `packages/runtime`, `packages/app-shell`, `apps/web`, `apps/desktop`, with `e2e/fixture` a plain Astro project. See `docs/stack.md` and `AGENTS.md`.
47
42
 
48
43
  ## License
49
44
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wojciechpiskorz/astroix",
3
- "version": "0.0.30",
3
+ "version": "0.0.31",
4
4
  "description": "Dev-only Astro 7 integration — a visual builder for Content Collections content and repo-mapped CSS",
5
5
  "type": "module",
6
6
  "license": "MIT",