Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
e068c66
refactor(blocks): remove obsolete block implementations
yyyyaaa Jul 22, 2026
bc7144b
feat(ui): add application shell blocks
yyyyaaa Jul 22, 2026
2c7f1f8
feat(packages): add data and sheets runtimes
yyyyaaa Jul 22, 2026
8d3685e
feat(blocks): add feature packs and console kit
yyyyaaa Jul 22, 2026
6669b61
build(registry): distribute feature pack kits
yyyyaaa Jul 22, 2026
43c4d9a
docs(blocks): document feature pack workflow
yyyyaaa Jul 22, 2026
82d3529
feat(blocks): document feature packs
yyyyaaa Jul 22, 2026
d3f81a7
fix(registry): validate feature pack sidecars
yyyyaaa Jul 22, 2026
073b411
feat(console-runtime): add tenant-scoped session state
yyyyaaa Jul 22, 2026
60d45b4
feat(data): support generic row identities
yyyyaaa Jul 22, 2026
23cba1a
fix(console-kit): resolve every semantic endpoint
yyyyaaa Jul 22, 2026
2ddb969
feat(sheets): support metadata-defined row identities
yyyyaaa Jul 22, 2026
184777a
fix(console-kit): fail closed on tenant RLS
yyyyaaa Jul 22, 2026
de5b055
test(console-kit): add live tenant proof suite
yyyyaaa Jul 22, 2026
5ae38a9
feat(console-kit): add optional pack adapters
yyyyaaa Jul 22, 2026
792c732
feat(console-kit): complete tenant integration surface
yyyyaaa Jul 22, 2026
90aab45
fix(console-kit): pass live tenant compatibility
yyyyaaa Jul 22, 2026
f5f57db
docs(console-kit): record backend proof and platform gaps
yyyyaaa Jul 22, 2026
fac059c
chore(repo): ignore local proof artifacts
yyyyaaa Jul 22, 2026
0bd49cf
fix(console-kit): close adversarial integration gaps
yyyyaaa Jul 22, 2026
8c579b3
fix(console-kit): enforce delegated invite boundaries
yyyyaaa Jul 22, 2026
2766254
test(console-kit): expand live tenant capability proof
yyyyaaa Jul 22, 2026
4afe1ad
fix(console-kit): close tenant authorization and verification gaps
yyyyaaa Jul 22, 2026
878ec51
feat(console-kit): prove trigger-backed organization flows
yyyyaaa Jul 22, 2026
b26cd1c
fix(console-kit): support data-only tenant sessions
yyyyaaa Jul 22, 2026
3a08223
docs(console-kit): pin platform kit comparison
yyyyaaa Jul 22, 2026
83e7a15
test(console-kit): cover nominal blank auth route
yyyyaaa Jul 22, 2026
f51b190
docs(console-kit): clarify blank preset authority
yyyyaaa Jul 22, 2026
2dc6396
fix(console-kit): attest retained proof status
yyyyaaa Jul 22, 2026
ba4c482
fix(console-kit): validate retained proof evidence
yyyyaaa Jul 22, 2026
79e8697
fix(console-kit): harden organization provisioning
yyyyaaa Jul 22, 2026
403d1ec
fix(console-kit): validate cleanup attestation
yyyyaaa Jul 22, 2026
a9ebe5c
fix(console-kit): reconcile organization creates safely
yyyyaaa Jul 22, 2026
a32749f
fix(console-kit): align tenant proof contracts
yyyyaaa Jul 22, 2026
69c23ae
fix(console-kit): verify allocated tenant routes
yyyyaaa Jul 22, 2026
ee014af
fix(console-kit): harden live membership proof
yyyyaaa Jul 22, 2026
0d17c63
fix(console-kit): attest mail fixture matrix
yyyyaaa Jul 22, 2026
5c676fb
feat(console-kit): align blocks with feature packs
yyyyaaa Jul 23, 2026
18c7f9b
docs(console-kit): add UI and DX handoff
yyyyaaa Jul 23, 2026
5cee276
fix(console-kit): align metadata with live API
yyyyaaa Jul 24, 2026
d0b0e02
fix(ui): honor boolean aria-invalid state
yyyyaaa Jul 24, 2026
6a45fcb
feat(ui): support manager-style app shell layouts
yyyyaaa Jul 24, 2026
6279298
refactor(feature-packs): polish account and membership workflows
yyyyaaa Jul 24, 2026
31cd4c3
feat(console-kit): add diagnostics retry and responsive navigation
yyyyaaa Jul 24, 2026
fd1f69c
docs(console-kit): add interactive product state guidance
yyyyaaa Jul 24, 2026
cc37812
fix(docs): make mobile navigation modal accessible
yyyyaaa Jul 24, 2026
81efff2
fix(build): keep console proof compatible with static export
yyyyaaa Jul 24, 2026
30cd653
feat(console-kit): complete tenant administration flows
yyyyaaa Jul 24, 2026
a453460
fix(console-kit): harden tenant administration flows
yyyyaaa Jul 24, 2026
4cbe7a4
fix(console-kit): close adversarial review gaps
yyyyaaa Jul 24, 2026
92f201e
docs(console-kit): refresh UI and DX handoff
yyyyaaa Jul 24, 2026
6242a8d
docs(console-kit): add visual review screenshots
yyyyaaa Jul 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
27 changes: 27 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ on:
branches: [main]
tags:
- '@constructive-io/ui@*'
- '@constructive-io/data@*'
- '@constructive-io/sheets@*'
- '@constructive-io/schema-builder@*'
pull_request:
branches: [main]
Expand Down Expand Up @@ -42,7 +44,32 @@ jobs:
- name: Build shadcn registry
run: pnpm build:registry

packages:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout
uses: actions/checkout@v7
with:
persist-credentials: false

- name: Setup pnpm
uses: pnpm/action-setup@v6

- name: Setup Node.js
uses: actions/setup-node@v7
with:
node-version: '24'
cache: pnpm

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Verify packed packages in clean consumers
run: pnpm pack:check

pages:
needs: packages
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -143,3 +143,6 @@ dist
vite.config.js.timestamp-*
vite.config.ts.timestamp-*
.vite/

# Local proof and visual QA artifacts
.local/
15 changes: 9 additions & 6 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
# Constructive Blocks Repository Guide

This public monorepo owns the Constructive Blocks documentation, the
`@constructive` shadcn registry, and the `@constructive-io/ui` and
`@constructive-io/schema-builder` packages.
`@constructive` shadcn registry, and the `@constructive-io/ui`,
`@constructive-io/data`, and `@constructive-io/sheets` packages. The local
schema-builder package remains in the workspace but is not part of the public
registry.

## Invariants

- Canonical source lives in `apps/blocks`, `packages/ui`, and
`packages/schema-builder`; do not edit generated registry output.
- Canonical public source lives in `apps/blocks`, `packages/ui`,
`packages/data`, and `packages/sheets`; do not edit generated registry output.
- Keep the registry collision-free and `@constructive`-namespaced.
- Preserve registry requirements sidecars.
- Preserve the seven feature-pack manifests and four experimental preset
profiles installed under `.constructive/feature-packs`.
- Never auto-discover or mutate sibling repositories from flow tooling.
- Keep generated SDK fixtures pruned and normal CI independent of live endpoints.
- Keep normal CI independent of generated SDKs and live endpoints.
- Never add automated npm publishing; publish verified tarballs manually.

## Verification
Expand Down
17 changes: 10 additions & 7 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,23 @@
# Constructive Blocks Repository Guide

This public monorepo owns the Constructive Blocks documentation, the
`@constructive` shadcn registry, and the `@constructive-io/ui` and
`@constructive-io/schema-builder` packages.
`@constructive` shadcn registry, and the `@constructive-io/ui`,
`@constructive-io/data`, and `@constructive-io/sheets` packages. The local
schema-builder package remains available for development but is delisted from
the public registry.

## Invariants

- `apps/blocks`, `packages/ui`, and `packages/schema-builder` are canonical
source trees; generated registry output is never edited.
- `apps/blocks`, `packages/ui`, `packages/data`, and `packages/sheets` are
canonical public source trees; generated registry output is never edited.
- The combined registry must remain collision-free and every install command
must use the `@constructive` namespace.
- Registry requirements sidecars are part of the public contract.
- Feature-pack and preset manifests installed under
`.constructive/feature-packs` are part of the public contract.
- Flow outputs outside this repository are generated only when explicit output
environment variables are supplied.
- Generated SDK fixtures are intentionally pruned. Refresh them explicitly;
do not add complete SDK trees or make normal CI depend on live endpoints.
- Blocks use injected endpoints, sessions, and adapters. Do not add generated
SDK trees or make normal CI depend on live endpoints.
- npm packages are versioned with Lerna and published manually from locally
verified tarballs. Do not add automated npm publishing.

Expand Down
14 changes: 12 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ component documentation, and published React packages.
- `apps/blocks` — primitive documentation and canonical block source.
- `apps/registry` — private builder for the `@constructive` shadcn registry.
- `packages/ui` — the `@constructive-io/ui` npm package and UI registry source.
- `packages/schema-builder` — the shared schema-builder npm package and registry source.
- `packages/data` — runtime GraphQL generation and the strict July 2026 `_meta` contract.
- `packages/sheets` — the metadata-driven application CRUD grid.
- `packages/schema-builder` — retained platform/operator tooling that is delisted from the public registry.

The documentation site is published at
<https://constructive-io.github.io/blocks/>. Registry JSON is served from
Expand All @@ -21,9 +23,10 @@ its own:
```bash
pnpm add @constructive-io/ui
pnpm dlx shadcn@4.13.1 add @constructive/button
pnpm dlx shadcn@4.13.1 add @constructive/console-kit-nextjs
```

The package exposes its Tailwind foundation at
The UI package exposes its Tailwind foundation at
`@constructive-io/ui/globals.css`. Registry installs copy the required UI
source and Constructive theme into the consumer and do not install the npm
package. Registry consumers require shadcn CLI 4.13.1 or newer.
Expand All @@ -42,6 +45,13 @@ first-party executable tooling is TypeScript and runs through `tsx`.
Use `pnpm check:full` when validating Storybook, registry installation, and
publishable package artifacts together.

Console Kit and the feature packs are source-installed blocks. They accept
database-scoped endpoints, a host-owned session, and provider-neutral adapters;
they do not require generated SDKs or environment-specific global clients. A
Console Kit instance owns one Zustand store composed from separate navigation,
runtime, and adapter slices, which keeps state isolated across mounts and
server requests.

`pnpm pack:local` builds the public packages and writes publishable tarballs to
the ignored `.artifacts/npm` directory. Consume those tarballs from downstream
projects before publishing so validation exercises the real package contents.
Expand Down
13 changes: 7 additions & 6 deletions apps/blocks/README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Blocks docs

This Next.js app is the clean documentation surface for the Constructive UI foundation. It intentionally exposes only
the landing page, setup guidance, and the 29 base primitive pages while the complete block catalog remains available
through the public registry.
This Next.js app documents the Constructive Blocks registry: the UI foundation,
29 base primitives, customer billing blocks, seven capability-aligned feature
packs, and Console Kit.

The same primitive implementation is shown through two distribution modes:

Expand All @@ -18,9 +18,10 @@ pnpm --filter blocks test
pnpm --filter blocks build:pages
```

`src/lib/base-primitives.ts` is the single docs catalog. `pnpm gen:check` validates that every entry has an npm export,
a registry item, and a preview that imports the npm subpath. The SDK fixture and mutation-selection checks remain in
place for the canonical block source under `src/blocks`.
`src/lib/base-primitives.ts`, `src/lib/billing-blocks.ts`, and
`src/lib/feature-packs.ts` are the documentation catalogs. `pnpm gen:check`
validates primitive distribution and keeps the feature-pack docs aligned with
their manifests, registry roots, and live previews.

The static Pages build uses `/blocks` as its deployment base path. Publishing npm packages remains a separate manual
release step.
Loading