Version Packages#19
Open
github-actions[bot] wants to merge 1 commit into
Open
Conversation
74db2bc to
f969a16
Compare
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
f969a16 to
5988856
Compare
5988856 to
611fc2b
Compare
611fc2b to
3b571b0
Compare
3b571b0 to
30f905b
Compare
30f905b to
3bd64a0
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@mysten-incubation/create-devstack-app@0.2.0
Minor Changes
11c258a: Rebuild the scaffolded template as per-plugin demo panels with an interactive plugin
picker.
The template app is now a set of working demo panels — an on-chain counter (core), walrus blob
upload and read-back, seal encrypt/decrypt, and a deepbook pool with a live order — instead of the
no-op greeting.
create-devstack-appnow prompts which plugins to include (core is alwayspresent; seal / walrus / deepbook are optional and default to all) and strips the unselected ones,
producing a clean, dangling-ref-free app for any subset. Non-interactive
--plugins/--all/--minimalflags are available for scripted use.The dev-wallet wiring is confined to a dev-only module so the template is deployable to a real
network (no dev accounts in the production bundle). Tests run on a separate
teststack soend-to-end tests work while
pnpm devis running, the template ships real e2e and unit tests (sopnpm testis no longer empty), and the generated app consumes the reshaped devstack codegen(
@generated/config.js, plugin siblings, and the@devstack-devdev surface).@mysten-incubation/dev-wallet@0.4.0
Minor Changes
11c258a: Auto-inject the devstack dev wallet via the Vite plugin.
@mysten-incubation/dev-walletadds a/injectentry (registerDevstackDevWallet) thatconstructs the dev wallet from a devstack stack's config and registers it on the page via the
wallet-standard window protocol (plus the Playwright
connectAsslot). The devstack Vite pluginuses it to inject + register the dev wallet in DEV only, so dapp-kit apps discover it through
wallet-standard with no app-side wiring — apps no longer need a
dapp-kit.dev.tsor any@devstack-devimport, and production builds carry no dev-wallet code. The dev wallet exposes allof its accounts to the dApp while
connectAsstill drives the active account.@mysten-incubation/devstack@0.2.0
Minor Changes
11c258a: Auto-inject the devstack dev wallet via the Vite plugin.
@mysten-incubation/dev-walletadds a/injectentry (registerDevstackDevWallet) thatconstructs the dev wallet from a devstack stack's config and registers it on the page via the
wallet-standard window protocol (plus the Playwright
connectAsslot). The devstack Vite pluginuses it to inject + register the dev wallet in DEV only, so dapp-kit apps discover it through
wallet-standard with no app-side wiring — apps no longer need a
dapp-kit.dev.tsor any@devstack-devimport, and production builds carry no dev-wallet code. The dev wallet exposes allof its accounts to the dApp while
connectAsstill drives the active account.11c258a: Reshape generated codegen output, make
deepbook()a one-liner local DeX, and fixdashboard snapshot/restore.
Codegen reshape (breaking for consumers of generated output).
generated/is now aruntime-only surface: a single combined
config.ts(
{ network, networks, packages.byNetwork, objects }) plus per-plugin siblings (seal.ts,walrus.ts,deepbook.ts,coins.ts) and Movebindings/. Dev-only and secret artifacts (theaccount name→address map and the dev-wallet pairing config) move out of the committed app surface
into
.devstack/stacks/<stack>/generated-extras/, reachable via a new@devstack-devpath alias.The old
accounts.ts/packages.ts/services.ts/sui/network.ts/dapp-kit/config.ts/extras.tsoutputs are removed; thedappKitConfigexport is nowdevWallet.localPackage/knownPackagegain anetworksoption for per-network (testnet/mainnet) package and object ids,projected into
config.packages.*.byNetworkandconfig.objects— so the same generated shapecan target a real network with pre-deployed contracts by switching
config.network.Deepbook one-liner.
deepbook()(ordeepbook({ mode: 'local' })) with no arguments nowprovisions a working local DeepBook DeX: it bundles the DeepBook v3 + sandbox-Pyth Move sources as
plugin assets, synthesizes the publish plus an ephemeral funded publisher, and seeds a default
DEEP/SUI pool — consumable directly through
@mysten/deepbook-v3against localnet.package/pyth/pools/publisherare now optional overrides;known/overridemodes areunchanged.
Dashboard snapshot/restore. A restore triggered from the web dashboard now re-acquires
services automatically (no manual restart required) and surfaces
snapshotting/restoringstatus instead of staying on "running". The post-restore re-acquire excludes the dashboard and
host-service transport, so the restore mutation returns its result cleanly instead of tearing down
the connection it is answering on (previously surfaced as a 502).
467ec8e: Remove unused plugin-authoring API surface that had no consumers.
The decl authoring helpers
routable,strategyContributor,snapshotable, andcodegenableare removed from the package root. Built-in plugins build these contribution decls as inline
{ kind: '...' }object literals, so the helpers carried no callers;projectionremains (it haslive call sites). The
PluginContextpassed to plugin contribution functions also drops itsunused
persist,requires, andfailverbs — plugins persist viaCacheServiceand readstrategies via the strategy registry directly — leaving a closed five-verb authoring surface
(
codegen,endpoint,snapshotExtra,publish,provides).No in-repo consumer used any of these. External plugin authors building decls through the removed
helpers should switch to the inline
kindliterals.467ec8e: Add
devstack up --warm— a fingerprinted boot cache.The first
--warmboot is a normal cold boot that captures a baseline snapshot; subsequent--warmboots restore that baseline (fast path) instead of cold-booting, as long as the inputsare unchanged. The baseline is keyed on a fingerprint of the config source, the plugin/member
graph, watched Move source contents, the devstack version, and image-override env vars; any change
re-captures. Use
--no-warmto force a cold boot, or setwarm: truein devstack options. Achange to per-plugin options is detected via the config-source hash; config logic split across
imported modules or driven by environment is a known v1 limitation (use
--no-warm/wipeaftersuch changes).
Patch Changes
467ec8e: Stage A of the devstack simplification: delete the dead
state-store(and its snapshotstate.jsonphantom) and hoist the Sui-domain helpers (sui-execute,sui-move-build,sui-ledger) out of the name-blind substrate intoplugins/sui/{exec,move,ledger}. Internalrefactor only — no public API change (release-surface is unchanged); the substrate no longer
imports
@mysten/suior names any plugin.467ec8e: Fix the sui-owned GraphQL-indexer Postgres sidecar failing auth
(
FATAL: password authentication failed for user "devstack") on a reused/restored data dir, whichcrash-looped the validator's embedded indexer and broke every e2e that boots a bare
sui()(snapshot-restore matrix + the deepbook/token-studio/warm-cache/action-cache/indexer-reverify
boots).
The sidecar password derived from
(app, stack, stackRoot), but its PGDATA rides the owner'ssnapshot and its committed layer is aliased onto the content-addressed
devstack-build:*buildtag, which a later boot reuses. The password baked into PGDATA at first init is never re-applied
on reuse/restore, so a
stackRoot-folded credential (which churns whenever the runtime rootchanges — every e2e boot mints a fresh tmpdir root) stopped matching the persisted data dir.
Sidecar passwords now derive from
(app, stack, role)only — invariant across runs of the samestack, matching how the snapshot/image persist — so reuse/restore is always credential-safe.
User-declared
postgres()is unchanged (it keeps the per-checkoutstackRootisolation; it hasno sidecar's shared-image collapse).
467ec8e: Local-mode Sui now bases on the upstream
mysten/sui-toolsimage (pinned to the buildcarrying the embedded-fullnode resume fix, sui #26884), so both the validator and the embedded
fullnode resume from their persisted dbs across
docker stop/start— there is no per-bootgenesis re-sync.
GraphQL and its indexer run against a sui-owned Postgres sidecar that is ON BY DEFAULT for a bare
sui(): the sidecar auto-creates itssui_indexerDB, so the full GraphQL surface boots with nocross-plugin wiring.
indexer: falseopts out (RPC + faucet only, no sidecar);indexerDb: { url, network, database? }points GraphQL at a Postgres you already run instead.b54e13a: Fix a stray NUL byte in the codegen orchestrator's
pathKeyseparator(
orchestrators/codegen/service.ts). The NUL madefile(1)classify the source as binarydataand caused
grepto silently skip it, and it also broke the duplicate-output-path error message:that path is extracted with
pathKey.slice(pathKey.indexOf(' ') + 1), which expects a spaceseparator the NUL wasn't. The separator is now a space, fixing both the tooling/grep issue and the
error-message extraction.