arcane-os 0.54.1 → 0.56.0
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.
- package/CHANGELOG.md +60 -0
- package/README.md +35 -28
- package/browser-runtime/core/client.mjs +552 -0
- package/browser-runtime/core/contracts.mjs +85 -0
- package/docs/architecture.md +31 -23
- package/docs/compatibility.md +10 -1
- package/docs/consumer-updates.md +82 -0
- package/docs/platform-targets.md +20 -11
- package/docs/publishing.md +41 -18
- package/docs/reference/README.md +19 -7
- package/docs/reference/availability-and-normalization.md +15 -5
- package/docs/reference/behavioral-testing.md +7 -6
- package/docs/reference/cli.md +12 -4
- package/docs/reference/core-client.md +163 -0
- package/docs/reference/core-native-packaging.md +149 -0
- package/docs/reference/core-runtime.md +185 -0
- package/docs/reference/inventory/package-api.json +271 -5
- package/docs/reference/protocols.md +38 -14
- package/docs/reference/pwa.md +17 -0
- package/docs/reference/sdk-api.md +772 -15
- package/package.json +10 -3
- package/schemas/arcane-app.schema.json +10 -0
- package/schemas/arcane-package.schema.json +10 -0
- package/schemas/native-build-plan.schema.json +8 -0
- package/src/app-descriptor.mjs +18 -1
- package/src/app-layout.mjs +6 -2
- package/src/cli/main.mjs +8 -6
- package/src/core/host.mjs +23 -0
- package/src/core/hosts/arcane-core-loader.cjs +2 -0
- package/src/core/hosts/linux/arcane_core_process.c +568 -0
- package/src/core/hosts/linux/arcane_core_process.h +127 -0
- package/src/core/hosts/sea-launcher.cjs +17 -0
- package/src/core/hosts/windows/ArcaneCoreProcess.cs +416 -0
- package/src/core/runtime.mjs +345 -0
- package/src/core/stdio.mjs +209 -0
- package/src/core-classic-source.mjs +43 -0
- package/src/import-map.mjs +62 -0
- package/src/native/portable-layout.mjs +184 -0
- package/src/native/portable-provider.mjs +211 -0
- package/src/native-plan.mjs +10 -4
- package/src/native-provider-loader.mjs +15 -4
- package/src/packager/core.mjs +131 -32
- package/src/process.mjs +8 -4
- package/src/targets/index.mjs +3 -1
- package/src/toolchain.mjs +23 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,65 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.56.0
|
|
4
|
+
|
|
5
|
+
- Add explicit `package.nativeResources` selection for native-only application
|
|
6
|
+
files and directories. Browser selection remains unchanged; non-browser
|
|
7
|
+
packaging keeps additional resources outside browser transformations and
|
|
8
|
+
stages them in a separate target output. Applications select their complete
|
|
9
|
+
required source closure, and target adapters receive the effective target
|
|
10
|
+
and browser-PWA selection.
|
|
11
|
+
- Add `getInstalledCoreClient()` to read the exact live SDK-installed client
|
|
12
|
+
without connecting or changing globals. Terminal `failTransport(error)` and
|
|
13
|
+
the owned native failure callback preserve complete errors, settle pending
|
|
14
|
+
requests, and release the failed installation's callbacks and subscriptions.
|
|
15
|
+
- Add opt-in `replayRuntimeState` for Core clients and classic injection. The
|
|
16
|
+
runtime replays its actual readiness and current service state for newly
|
|
17
|
+
connected documents without restarting services or delaying page startup.
|
|
18
|
+
|
|
19
|
+
- Preserve complete UTF-8 process output when a character spans stdout or stderr
|
|
20
|
+
chunks. Independent readable-stream decoders feed the same text to captured
|
|
21
|
+
results and existing event delivery; ordering, backpressure, cancellation,
|
|
22
|
+
graceful drain, nonzero error details and line-event behavior remain unchanged.
|
|
23
|
+
- Include committed Windows and Linux Core process-transport source and the
|
|
24
|
+
generic Windows SEA launcher source as native-host groundwork. These sources
|
|
25
|
+
do not activate a platform host or deliver a public native executable; app
|
|
26
|
+
host composition and the remaining native integration stay independently owned.
|
|
27
|
+
- Clarify development `latest` tracking, production-designated pins, matching
|
|
28
|
+
requester notices, and required documentation/site release follow-through.
|
|
29
|
+
- No new dependency, application service, automatic runtime installation,
|
|
30
|
+
application default change or saved-data migration is introduced.
|
|
31
|
+
|
|
32
|
+
## 0.55.0
|
|
33
|
+
|
|
34
|
+
- Add public Core client, protocol contracts and classic-script source generation
|
|
35
|
+
through `arcane-os/core/client`, `core/contracts` and `core/classic-source`.
|
|
36
|
+
Native facades install synchronously; the shared event owner retains ordered
|
|
37
|
+
early events and responses. Correlation, complete payloads and diagnostics,
|
|
38
|
+
cancellation and transport-versus-service readiness remain explicit.
|
|
39
|
+
- Add app-neutral native Core runtime and stdio transport through
|
|
40
|
+
`arcane-os/core/runtime` and `core/stdio`. Hosts register services, start them
|
|
41
|
+
independently and distinguish cancellable renderer requests from accepted
|
|
42
|
+
service-lifetime work. Graceful shutdown waits for accepted responses, service
|
|
43
|
+
drain/disposal and queued transport output without terminating the host.
|
|
44
|
+
- Add SDK-owned portable native payload assembly and explicit application-service
|
|
45
|
+
composition through `arcane-os/native/portable-provider` and `core/host`.
|
|
46
|
+
Portable provider loading no longer requires an Arcane OS checkout; explicit
|
|
47
|
+
checkout providers remain supported. Preserve complete selected releases,
|
|
48
|
+
dependency records and the application's actual SDK version separately from
|
|
49
|
+
the builder, including partial direct browser package projections. Portable
|
|
50
|
+
output declares the host's serving, client injection and stdio responsibilities;
|
|
51
|
+
it is not an executable platform host.
|
|
52
|
+
- Preserve Core client FIFO order during deferred event-owner handoff, report
|
|
53
|
+
asynchronous send failures after request settlement, retain original native
|
|
54
|
+
diagnostic fields and require callable transport sending before readiness.
|
|
55
|
+
- Correct disabled-PWA packaging so selected output documents lose active SDK
|
|
56
|
+
manifest and bootstrap references before native-module processing. Preserve
|
|
57
|
+
source PWA settings, unrelated authored links, inactive HTML and unselected
|
|
58
|
+
documents; enabled PWA generation keeps its existing behavior.
|
|
59
|
+
- Executable platform hosts and application host cutover remain separate work.
|
|
60
|
+
Applications retain service composition, model selection and saved settings.
|
|
61
|
+
No new dependency, automatic model loading or data migration is added.
|
|
62
|
+
|
|
3
63
|
## 0.54.1
|
|
4
64
|
|
|
5
65
|
- Select the self-contained Transformers.js 4.3.0 browser CDN bundle for
|
package/README.md
CHANGED
|
@@ -20,9 +20,11 @@ selected SDK projection or an explicit live SDK source mount. Both profiles
|
|
|
20
20
|
share the theme, packaging, event, cancellation,
|
|
21
21
|
and browser run contracts while retaining their selected application layout.
|
|
22
22
|
|
|
23
|
-
This checkout defines the `0.
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
This checkout defines the `0.56.0` SDK contract. Development applications declare
|
|
24
|
+
`arcane-os` as `latest` and retain their lockfile. Exact SDK pins begin when Roshi
|
|
25
|
+
designates a production build. Follow [Consumer updates](docs/consumer-updates.md)
|
|
26
|
+
to refresh and compare the installed SDK and lockfile with the published channel;
|
|
27
|
+
registry state is deliberately not baked into application artifacts.
|
|
26
28
|
|
|
27
29
|
Standalone browser apps use their repository root and installed npm package directly, without a
|
|
28
30
|
generated workspace `arcane/` directory or `arcane.lock.json`. Select the
|
|
@@ -594,10 +596,11 @@ Arcane root, shared, and native tests require the explicit shared focused-test
|
|
|
594
596
|
form above. External app repositories retain their root `test/` plus selected
|
|
595
597
|
app-test behavior.
|
|
596
598
|
|
|
597
|
-
Integrated native app builds
|
|
598
|
-
`--
|
|
599
|
-
|
|
600
|
-
|
|
599
|
+
Integrated native app builds select one `--app` and one declared native target,
|
|
600
|
+
and `--output-root` must resolve outside that checkout. An explicit
|
|
601
|
+
`--arcane-root` must resolve to the same Arcane checkout as `--workspace`;
|
|
602
|
+
the default portable provider instead comes from the installed SDK package.
|
|
603
|
+
The SDK then uses the same package, plan, provider, and
|
|
601
604
|
same-process run lifecycle as an external app repository. Verification remains
|
|
602
605
|
an explicit operation for a selected release output.
|
|
603
606
|
|
|
@@ -617,8 +620,8 @@ arcane package [--app <id>] [--dry-run]
|
|
|
617
620
|
arcane verify [--app <id>]
|
|
618
621
|
arcane bundle [--app <id>] [--artifact <file>.arcane-app.tar.gz] [--overwrite]
|
|
619
622
|
arcane verify-bundle <file.arcane-app.tar.gz>
|
|
620
|
-
arcane native-doctor --target <native-target> --arcane-root <directory>
|
|
621
|
-
arcane native-prepare --target <native-target> --arcane-root <directory>
|
|
623
|
+
arcane native-doctor --target <native-target> [--arcane-root <directory>]
|
|
624
|
+
arcane native-prepare --target <native-target> [--arcane-root <directory>]
|
|
622
625
|
arcane build --target <target> [--arcane-root <directory>] [--output-root <directory>] [--format <format>] [--signing <mode>]
|
|
623
626
|
arcane run [--target <target>] [--app <id>] [--arcane-root <directory>] [--output-root <directory>] [--format <format>] [--signing <mode>]
|
|
624
627
|
arcane targets
|
|
@@ -689,24 +692,25 @@ package installation, or assertions.
|
|
|
689
692
|
|
|
690
693
|
## Current target support
|
|
691
694
|
|
|
692
|
-
The SDK exposes one browser target and
|
|
693
|
-
|
|
694
|
-
Windows x64 unsigned-local-test EXE bundle, Linux x64 and Linux ARM64
|
|
695
|
+
The SDK exposes one browser target and an SDK-owned, non-runnable portable
|
|
696
|
+
payload directory. Four executable target entries require an explicit Arcane OS
|
|
697
|
+
provider: a Windows x64 unsigned-local-test EXE bundle, Linux x64 and Linux ARM64
|
|
695
698
|
unsigned-local-test DEBs, and an Android development-signed APK. The
|
|
696
699
|
`android-arm64` APK is architecture-neutral because it contains no native ABI;
|
|
697
700
|
the target name identifies its supported physical/native ARM64 run profile.
|
|
698
701
|
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
702
|
+
Portable uses the installed SDK provider without an Arcane OS checkout.
|
|
703
|
+
An explicit `--arcane-root` retains the checkout provider selection; executable
|
|
704
|
+
targets still require that root and their platform toolchains. Every native
|
|
705
|
+
build needs a canonical app descriptor declaring the exact selected target.
|
|
706
|
+
The SDK never searches for a mutable toolchain root. Scaffold a separate
|
|
703
707
|
repository with the matching `--target`, or add and validate that target in the
|
|
704
708
|
canonical descriptor before invoking its native command. From an external
|
|
705
709
|
application repository, run one selected target:
|
|
706
710
|
|
|
707
711
|
```bash
|
|
708
|
-
npm exec -- arcane native-doctor --target portable
|
|
709
|
-
npm exec -- arcane build --target portable
|
|
712
|
+
npm exec -- arcane native-doctor --target portable
|
|
713
|
+
npm exec -- arcane build --target portable
|
|
710
714
|
|
|
711
715
|
# Windows x64: build or build, verify, and launch in one process
|
|
712
716
|
npm exec -- arcane build --target windows-x64 --arcane-root "../Arcane OS"
|
|
@@ -737,15 +741,18 @@ browser package.
|
|
|
737
741
|
`native-prepare` is available as a standalone toolchain diagnostic. Do not run
|
|
738
742
|
it automatically: the build command prepares the selected toolchain itself.
|
|
739
743
|
|
|
740
|
-
The build
|
|
741
|
-
Core to
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
744
|
+
The build passes the complete selected app release, descriptor, dependencies and
|
|
745
|
+
minimum Core requirement to the provider. The SDK portable provider copies those
|
|
746
|
+
payloads and generates a Core entry and synchronous classic client. Explicit
|
|
747
|
+
application services use `createPortableNativeProvider({services:[{module,options}]})`
|
|
748
|
+
from `arcane-os/native/portable-provider`; the default imports no OS product or
|
|
749
|
+
application services. `arcane-os/core/host` owns reusable native service
|
|
750
|
+
composition and shutdown. See [Core native packaging](docs/reference/core-native-packaging.md).
|
|
751
|
+
Payload assembly is separate from composed-host compatibility and execution.
|
|
752
|
+
The portable payload under `build/portable/` is not executable and
|
|
753
|
+
`arcane run --target portable` is intentionally unavailable. No executable host,
|
|
754
|
+
installer, model assets or platform build toolchain is added by this SDK
|
|
755
|
+
provider. Through explicit Arcane OS providers, Windows emits
|
|
749
756
|
an app-scoped executable bundle under `build/windows-x64/`. Linux emits an
|
|
750
757
|
app-scoped amd64 DEB under `build/linux-x64/` or ARM64 DEB under
|
|
751
758
|
`build/linux-arm64/`. Android emits one development-signed, architecture-neutral
|
|
@@ -778,7 +785,7 @@ signing, store-publishing, release, or promotion evidence.
|
|
|
778
785
|
| Integrated Arcane checkout workflow | Yes |
|
|
779
786
|
| ArcaneOllama managed-service check | Yes on supported Windows hosts |
|
|
780
787
|
| SDK native plan/provider boundary | Yes |
|
|
781
|
-
| Portable app-scoped Core
|
|
788
|
+
| Portable app-scoped payload and reusable Core entry | SDK provider by default; explicit checkout override retained; not directly runnable |
|
|
782
789
|
| Windows x64 EXE bundle | Yes, unsigned local development with explicit `--arcane-root` |
|
|
783
790
|
| Linux x64 DEB | Yes, unsigned local development with explicit `--arcane-root` |
|
|
784
791
|
| Linux ARM64 DEB | Yes, unsigned local development on a compatible native ARM64 toolchain with explicit `--arcane-root`; native build, WebKit readiness, and cancellation evidence is recorded |
|