Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
d0efba1
feat: add InstructionHandler with build() for code-generated instruct…
adiman9 Feb 4, 2026
6a74067
feat: Add PDA and Instruction type definitions for SDK code generation
adiman9 Feb 4, 2026
ced55fe
feat: add token metadata resolver with DAS API integration
adiman9 Feb 4, 2026
406927e
refactor: rename TRITON_DAS env vars to generic DAS_API prefix
adiman9 Feb 4, 2026
36829a4
WIP: PDA registration
adiman9 Feb 4, 2026
e912aad
fix: resolve TypeScript errors in core SDK
adiman9 Feb 4, 2026
5f033b6
feat: add PDA DSL imports to generated TypeScript SDK
adiman9 Feb 4, 2026
a277e2c
feat: add runtime schema validation to TypeScript core SDK
adiman9 Feb 4, 2026
4822f83
feat: extend OreRound with entropy and grid data fields
adiman9 Feb 4, 2026
ba48532
feat: add CompletedSchema with required fields and TokenMetadata buil…
adiman9 Feb 4, 2026
3729710
feat: add resolver-provided computed methods (ui_amount, raw_amount)
adiman9 Feb 4, 2026
17917ff
feat(ore): add ui_amount computed fields to TreasuryState
adiman9 Feb 4, 2026
4578e1b
fix: Update generated Ore sdk
adiman9 Feb 4, 2026
aed45c8
feat: add resolver support with resolve attribute and computed field …
adiman9 Feb 5, 2026
57d704c
feat(ore): add TokenMetadata resolver and ui_amount computed fields
adiman9 Feb 5, 2026
441cfef
feat: add stop attribute for conditional field population
adiman9 Feb 5, 2026
f3bf09b
feat(ore): add RoundTreasury and ui_amount computed fields
adiman9 Feb 5, 2026
f94d4df
chore: Update ore stack
adiman9 Feb 5, 2026
1f571c0
feat(computed): support resolver computed fields inside array .map() …
adiman9 Feb 5, 2026
98dd7cf
feat(ore): add deployed_per_square_ui computed field for UI display
adiman9 Feb 5, 2026
054f6d6
feat(example): redesign OreDashboard with grid-based mining visualiza…
adiman9 Feb 5, 2026
57a7c18
chore: update Cargo.lock
adiman9 Feb 5, 2026
03b7fd8
fix: add connectionState and isConnected to useHyperstack return value
adiman9 Feb 5, 2026
e88c64a
docs: update React SDK docs with new useHyperstack connection state API
adiman9 Feb 5, 2026
8a68cd3
fix
adiman9 Feb 5, 2026
790ad65
feat(react): add schema filtering support to view hooks
adiman9 Feb 5, 2026
618ef1d
feat(example): use schema validation in ore-react dashboard
adiman9 Feb 5, 2026
23085d6
chore: Update ore stack
adiman9 Feb 5, 2026
ce78f0a
fix(example): prevent layout flash and timer overflow in ore-react da…
adiman9 Feb 5, 2026
da4b7d9
feat(example): restyle ore-react dashboard with Tailwind CSS
adiman9 Feb 5, 2026
b68f11f
refactor(example): split ore-react dashboard into focused components
adiman9 Feb 5, 2026
b707f95
feat(computed): add __slot and __timestamp context access in computed…
adiman9 Feb 5, 2026
1106e77
fix(macros): recover from poisoned mutex and support block expression…
adiman9 Feb 5, 2026
a6e953e
fix(ore): source expires_at from entropy account via lookup index
adiman9 Feb 5, 2026
51d1532
feat(ore-react): redesign dashboard with clean minimal aesthetic and …
adiman9 Feb 5, 2026
5b160c3
chore: Update ore stack
adiman9 Feb 5, 2026
23c0b72
feat(ore-react): redesign dashboard with immersive zen mode layout
adiman9 Feb 5, 2026
138ae03
chore: Add link to connection badge
adiman9 Feb 5, 2026
5212150
fix(sdk): derive Clone for ViewBuilder
adiman9 Feb 6, 2026
4ae10b1
refactor(examples): simplify ore examples
adiman9 Feb 6, 2026
e994cb1
ci: auto-update example versions before bundling templates
adiman9 Feb 6, 2026
565d92b
fix: resolve clippy warnings across workspace
adiman9 Feb 6, 2026
54dc7f0
fix: Docs linting
adiman9 Feb 6, 2026
17a62ac
fix: Ore stack
adiman9 Feb 6, 2026
bd06bf0
fix: Pumpfun stack
adiman9 Feb 6, 2026
8842918
fix: Typescript stacks sdk package lock
adiman9 Feb 6, 2026
cf2c33d
fix: Ore rust cargo lock
adiman9 Feb 6, 2026
8f35bff
feat: add resolver-declared transforms to #[map] attribute
adiman9 Feb 6, 2026
d8cce34
fix: update ore-react example for resolver-declared transform field n…
adiman9 Feb 6, 2026
6ccfa82
ci: enable peer dependency updates in release-please
adiman9 Feb 6, 2026
8ef6abc
fix(examples): use semver instead of file references in ore-react
adiman9 Feb 6, 2026
43f649d
ci: skip redundant CI runs on merge to main
adiman9 Feb 6, 2026
a9c36cf
chore: Regenerate package-lock
adiman9 Feb 6, 2026
3a329d3
chore: Update ore sdk
adiman9 Feb 6, 2026
b7381e7
ci: build core dependency before typescript-stacks
adiman9 Feb 6, 2026
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
21 changes: 6 additions & 15 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,12 @@
name: CI

on:
push:
branches: [main]
pull_request:

jobs:
rust:
name: Rust
runs-on: ubuntu-latest
# Skip CI for release-please commits (already tested on the source commit)
if: github.actor != 'release-please[bot]'
steps:
- uses: actions/checkout@v4

Expand Down Expand Up @@ -42,7 +38,6 @@ jobs:
typescript-core:
name: TypeScript Core
runs-on: ubuntu-latest
if: github.actor != 'release-please[bot]'
defaults:
run:
working-directory: typescript/core
Expand All @@ -68,7 +63,6 @@ jobs:
typescript-react:
name: TypeScript React
runs-on: ubuntu-latest
if: github.actor != 'release-please[bot]'
steps:
- uses: actions/checkout@v4

Expand Down Expand Up @@ -96,32 +90,31 @@ jobs:
typescript-stacks:
name: TypeScript Stacks
runs-on: ubuntu-latest
if: github.actor != 'release-please[bot]'
defaults:
run:
working-directory: stacks/sdk/typescript
steps:
- uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: stacks/sdk/typescript/package-lock.json

- name: Build core dependency
working-directory: typescript/core
run: npm ci && npm run build

- name: Install dependencies
working-directory: stacks/sdk/typescript
run: npm ci

- name: Build
working-directory: stacks/sdk/typescript
run: npm run build

# Validates that generated SDKs are up-to-date with their source ASTs.
# This prevents publishing stale SDKs when stack definitions change.
validate-generated-sdks:
name: Validate Generated SDKs
runs-on: ubuntu-latest
if: github.actor != 'release-please[bot]'
steps:
- uses: actions/checkout@v4

Expand Down Expand Up @@ -183,7 +176,6 @@ jobs:
python:
name: Python
runs-on: ubuntu-latest
if: github.actor != 'release-please[bot]'
defaults:
run:
working-directory: python/hyperstack-sdk
Expand All @@ -209,7 +201,6 @@ jobs:
docs:
name: Docs
runs-on: ubuntu-latest
if: github.actor != 'release-please[bot]'
defaults:
run:
working-directory: docs
Expand Down
12 changes: 11 additions & 1 deletion .github/workflows/release-please.yml
Original file line number Diff line number Diff line change
Expand Up @@ -152,12 +152,22 @@ jobs:

bundle-templates:
name: Bundle CLI Templates
needs: release-please
needs: [release-please, publish-npm, publish-rust]
runs-on: ubuntu-latest
if: needs.release-please.outputs.cli_release_created == 'true'
steps:
- uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Update example versions
run: |
VERSION="${{ needs.release-please.outputs.cli_version }}"
./scripts/update-example-versions.sh "$VERSION"

- name: Create templates tarball
run: |
VERSION="${{ needs.release-please.outputs.cli_version }}"
Expand Down
126 changes: 124 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 7 additions & 5 deletions docs/concepts/stack-api.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -437,14 +437,16 @@ function TokenCard({ token }: { token: Token }) {

## Connection State

Monitor WebSocket connection status.
Monitor WebSocket connection status via `useHyperstack`:

```typescript
import { useConnectionState } from 'hyperstack-react';
import { useHyperstack } from 'hyperstack-react';
import { MY_STACK } from './stack';

function ConnectionIndicator() {
const state = useConnectionState();
// 'disconnected' | 'connecting' | 'connected' | 'error' | 'reconnecting'
const { connectionState, isConnected } = useHyperstack(MY_STACK);
// connectionState: 'disconnected' | 'connecting' | 'connected' | 'error' | 'reconnecting'
// isConnected: boolean (true when connectionState === 'connected')

const colors = {
disconnected: 'gray',
Expand All @@ -454,7 +456,7 @@ function ConnectionIndicator() {
reconnecting: 'orange',
};

return <span style={{ color: colors[state] }}>{state}</span>;
return <span style={{ color: colors[connectionState] }}>{isConnected ? 'Live' : connectionState}</span>;
}
```

Expand Down
Loading