Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
107 commits
Select commit Hold shift + click to select a range
2cb64cf
feat: implement Blue Language and Contracts 1.0
piotr-blue Jul 26, 2026
0a6a40d
feat: support fragmented processing and logical delivery
piotr-blue Jul 27, 2026
f1f33ce
feat: close phase-b routing and cyclic fragments
piotr-blue Jul 27, 2026
5b225e4
feat(language): finalize generic kernel RC candidate
piotr-blue Jul 29, 2026
455daa4
Merge origin/next RC.19 provenance lineage
piotr-blue Jul 29, 2026
9706b60
fix(language): separate metadata provenance from value presence
piotr-blue Jul 29, 2026
e563300
feat(processor): add diagnostics, recovery guidelines, and enum canon…
piotr-blue Jul 31, 2026
c4443af
refactor(language): remove DefaultBlue and NodeExtenderTest, add prep…
piotr-blue Jul 31, 2026
ba680a2
feat: align final semantics and add characterization gates
piotr-blue Aug 1, 2026
eecf92a
test: align snapshot update operation semantics
piotr-blue Aug 1, 2026
76582d9
chore: seal phase one semantic baseline
piotr-blue Aug 1, 2026
57c6efd
refactor(language): decompose core into focused services
piotr-blue Aug 1, 2026
65e1093
refactor(contracts): compose deterministic processing kernel
piotr-blue Aug 1, 2026
53e008e
perf(contracts): elide no-op observation allocation
piotr-blue Aug 1, 2026
6116764
perf(contracts): preserve canonical gas charge path
piotr-blue Aug 1, 2026
3a9f1d2
test(contracts): preserve canonical checkpoint gas trace
piotr-blue Aug 1, 2026
017cc0d
chore: record Phase 3 modernization evidence
piotr-blue Aug 1, 2026
ab748c6
refactor(ipfs): remove direct commons codec dependency
piotr-blue Aug 1, 2026
af49be7
refactor(language): remove contracts pointer dependency
piotr-blue Aug 1, 2026
891f068
build: add typed convention plugin foundation
piotr-blue Aug 1, 2026
688136b
refactor(contracts): remove processor package cycle
piotr-blue Aug 1, 2026
6ed5145
refactor(language): invert focused runtime composition
piotr-blue Aug 1, 2026
3795eb8
refactor(model): enforce lower dependency boundary
piotr-blue Aug 1, 2026
87e37d8
refactor(contracts): depend on focused language runtime
piotr-blue Aug 1, 2026
12cd9c3
refactor(language): separate core API package
piotr-blue Aug 1, 2026
69270a5
refactor(mapping): isolate optional discovery
piotr-blue Aug 1, 2026
e26ecf9
build: add deterministic modular release gates
piotr-blue Aug 1, 2026
918422c
refactor(conformance): extract fixture suites from aggregate
piotr-blue Aug 1, 2026
e2c430d
refactor(model): remove compatibility package cycles
piotr-blue Aug 1, 2026
0f13ece
build(architecture): verify Java package cycles
piotr-blue Aug 1, 2026
7ece5a6
build(conventions): complete Java module defaults
piotr-blue Aug 1, 2026
01fc098
refactor(core): isolate runtime and utility ownership
piotr-blue Aug 1, 2026
86091c2
build(modules): add selective-source project scaffold
piotr-blue Aug 1, 2026
156e7e0
refactor(ipfs): isolate transport decoding
piotr-blue Aug 1, 2026
68c35dd
refactor(core): isolate preprocessing provider ownership
piotr-blue Aug 1, 2026
1f79996
refactor(core): eliminate production package cycles
piotr-blue Aug 1, 2026
1e9985f
refactor(modules): extract production sources physically
piotr-blue Aug 1, 2026
505c20a
docs(modules): reconcile physical ownership evidence
piotr-blue Aug 1, 2026
ca04130
build(modules): add typed release orchestration
piotr-blue Aug 1, 2026
a83a312
docs(modules): track typed dependency ownership
piotr-blue Aug 1, 2026
ba459a2
test(architecture): follow extracted module layout
piotr-blue Aug 1, 2026
9041048
build(release): restore clean and source evidence
piotr-blue Aug 1, 2026
b78c2f0
perf(modules): assign benchmarks to runtime owners
piotr-blue Aug 1, 2026
b6e6af1
build(evidence): restore semantic release proofs
piotr-blue Aug 1, 2026
20a1a3b
docs(architecture): establish final conceptual decisions
piotr-blue Aug 1, 2026
fe845d1
docs(examples): add runnable language examples
piotr-blue Aug 1, 2026
754db57
docs(developer): teach the final language model
piotr-blue Aug 1, 2026
324f27d
refactor(matching): remove internal public package
piotr-blue Aug 1, 2026
3418505
feat(runtime): add Language processing bridge
piotr-blue Aug 1, 2026
1c1cc28
refactor(core): relocate pointer and merge helpers
piotr-blue Aug 1, 2026
f13904d
docs(architecture): describe final language ownership
piotr-blue Aug 1, 2026
b54b114
refactor(preprocess): internalize node transformer
piotr-blue Aug 1, 2026
458903e
feat(contracts): add focused processing service
piotr-blue Aug 1, 2026
61f898f
docs(navigation): retire conflicting legacy guidance
piotr-blue Aug 1, 2026
ea19cbd
refactor(identity): own canonical list tokens
piotr-blue Aug 1, 2026
b069059
docs(readme): provide a concise runnable entry point
piotr-blue Aug 1, 2026
09aa206
feat(runtime): add aggregate composition root
piotr-blue Aug 1, 2026
6449c1b
build(docs): add deterministic documentation gates
piotr-blue Aug 1, 2026
087ac34
docs(reference): generate release inventories
piotr-blue Aug 1, 2026
5a11ec6
docs(model): document stable value packages
piotr-blue Aug 1, 2026
e3bcd39
docs(core): document stable public packages
piotr-blue Aug 1, 2026
66e9758
docs(performance): document precise JMH execution
piotr-blue Aug 1, 2026
6caf9df
docs(mapping): document stable mapping packages
piotr-blue Aug 1, 2026
f1d71e6
docs(contracts): document processor packages
piotr-blue Aug 1, 2026
47fcee3
refactor(api): publish thin Blue facade
piotr-blue Aug 1, 2026
1549e58
docs(conformance): document suite packages
piotr-blue Aug 1, 2026
695926b
docs(contracts): qualify frozen patch link
piotr-blue Aug 1, 2026
ac75e67
build(quality): add final release decision gate
piotr-blue Aug 1, 2026
b18898e
docs(examples): add Contracts processing examples
piotr-blue Aug 1, 2026
318b777
build(quality): close final evidence gaps
piotr-blue Aug 1, 2026
b833169
refactor(api): replace utility package surface
piotr-blue Aug 1, 2026
153f3f9
fix(examples): demonstrate cross-channel routing
piotr-blue Aug 1, 2026
73949e4
docs(api): reconcile final relocation ledger
piotr-blue Aug 1, 2026
76ef5f8
docs(dx): complete modernization quality surface
piotr-blue Aug 1, 2026
a2a17b0
test(architecture): follow extracted module ownership
piotr-blue Aug 1, 2026
f57e790
docs(examples): complete strict API documentation
piotr-blue Aug 1, 2026
ea5fb4f
fix(build): execute required JMH smoke benchmarks
piotr-blue Aug 1, 2026
087e5e1
fix(build): isolate aggregate facade from JMH
piotr-blue Aug 1, 2026
e0c3055
fix(conformance): verify portable semantic evidence
piotr-blue Aug 1, 2026
4b88f91
docs(conformance): normalize report API comments
piotr-blue Aug 1, 2026
a19ed60
chore(conformance): sync collection paths package
piotr-blue Aug 2, 2026
f294193
fix(identity): preserve exact schema enum order
piotr-blue Aug 2, 2026
b0b4b83
feat(contracts): model embedded collection paths
piotr-blue Aug 2, 2026
53a6cf9
feat(contracts): plan embedded collection scopes
piotr-blue Aug 2, 2026
e3be1de
feat(contracts): integrate collection scope occurrences
piotr-blue Aug 2, 2026
19c0487
test(conformance): close collection path fixtures
piotr-blue Aug 2, 2026
a7adcb3
refactor(processor): focus facade and runtime ownership
piotr-blue Aug 2, 2026
78f26d4
revert(identity): retain canonical schema enum normalization
piotr-blue Aug 2, 2026
cf24bfb
fix(conformance): bind enum-normalized contracts package
piotr-blue Aug 2, 2026
f7d03ac
fix(contracts): complete collection scope lifecycle
piotr-blue Aug 2, 2026
fa66549
fix(release): align corrected collection package evidence
piotr-blue Aug 2, 2026
48e586e
perf(contracts): add collection path benchmarks
piotr-blue Aug 2, 2026
a0e79d9
docs(architecture): record processor cohesion evidence
piotr-blue Aug 2, 2026
c3e8a7a
docs(contracts): explain collection paths and migration
piotr-blue Aug 2, 2026
23f92df
docs(examples): complete result Javadocs
piotr-blue Aug 2, 2026
3e40791
test(evidence): refresh collection locality baseline
piotr-blue Aug 2, 2026
d83d4c2
fix(release): bind evidence to corrected fixture total
piotr-blue Aug 2, 2026
63a9ed6
chore(quality): remove stale class size exceptions
piotr-blue Aug 2, 2026
44b4bc4
docs(release): record final collection evidence
piotr-blue Aug 2, 2026
9a607e5
docs(license): update copyright details for 2025
piotr-blue Aug 2, 2026
a3b38ca
feat(processor): implement indexed delivery evaluation classes
piotr-blue Aug 3, 2026
529b38a
feat: add invocation-scoped Contracts execution boundary
piotr-blue Aug 4, 2026
9a9c047
fix: make Phase-B classification representation invariant
piotr-blue Aug 4, 2026
97c8b35
docs: bind platform invocation release evidence
piotr-blue Aug 4, 2026
c34a19d
fix: preserve provider locality across representations
piotr-blue Aug 4, 2026
5788da2
fix: restore configured evidence-path admission
piotr-blue Aug 4, 2026
c3d5856
fix: keep selected classification reads side-effect free
piotr-blue Aug 4, 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
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .cz.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
name = "cz_conventional_commits"
tag_format = "v$version"
version_scheme = "semver"
version = "3.1.0-rc.19"
version = "3.1.0-rc.18"
update_changelog_on_bump = true
9 changes: 7 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,10 +57,15 @@ jobs:
if: always() # run even if build failed
with:
name: test-results
path: build/reports
path: |
build/reports
blue-*/build/reports
examples/build/reports
build-logic/build/reports
smoke-tests/published/build/reports

- name: Archive libs
uses: actions/upload-artifact@v4
with:
name: libs
path: build/libs
path: blue-*/build/libs
93 changes: 24 additions & 69 deletions .github/workflows/release-rc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,13 @@ on:
- 'CHANGELOG.md'
- 'LICENSE*'
- 'README*'
- 'api/**'
- 'blue-*/**'
- 'build.gradle'
- 'build-logic/**'
- 'examples/**'
- 'settings.gradle*'
- 'smoke-tests/**'
- 'docs/**'
- 'gradle.properties'
- 'gradle/wrapper/**'
Expand Down Expand Up @@ -84,11 +89,19 @@ jobs:
RELEASE_VERSION: ${{ steps.version.outputs.version }}
run: node .github/scripts/verify-release-readiness.js

- name: Commit RC version
run: |
git add .cz.toml
git commit -m "chore: release ${{ steps.version.outputs.version }}"

- name: Configure reproducible build timestamp
run: echo "SOURCE_DATE_EPOCH=$(git show -s --format=%ct HEAD)" >> "$GITHUB_ENV"

- name: Execute Gradle build
run: ./gradlew clean build rcVerify jmhClasses
- name: Execute clean Gradle build
run: ./gradlew clean build

- name: Execute RC verification
run: ./gradlew rcVerify

- name: Verify reproducible source release
run: |
Expand All @@ -99,70 +112,11 @@ jobs:
second_sha="$(sha256sum "${source_archives[0]}" | awk '{print $1}')"
test "$first_sha" = "$second_sha"

- name: Verify binary API compatibility
run: |
baseline_root="$(mktemp -d)"
master_dir="${baseline_root}/master"
previous_rc_dir="${baseline_root}/previous-rc"
current_version='${{ steps.version.outputs.version }}'
rc_series="${current_version%-rc.*}"
previous_rc_tag=''
while IFS= read -r candidate_tag; do
if [[ "$candidate_tag" != "v${current_version}" ]]; then
previous_rc_tag="$candidate_tag"
break
fi
done < <(git tag --list "v${rc_series}-rc.*" --sort=-version:refname)

git worktree add --detach "$master_dir" origin/master
if [[ -n "$previous_rc_tag" ]]; then
git worktree add --detach "$previous_rc_dir" "$previous_rc_tag"
fi
cleanup() {
git worktree remove --force "$master_dir" || true
if [[ -n "$previous_rc_tag" ]]; then
git worktree remove --force "$previous_rc_dir" || true
fi
}
trap cleanup EXIT

BLUE_RELEASE_CHANNEL=stable "$master_dir/gradlew" -p "$master_dir" jar --no-daemon
if [[ -n "$previous_rc_tag" ]]; then
BLUE_RELEASE_CHANNEL=rc "$previous_rc_dir/gradlew" -p "$previous_rc_dir" jar --no-daemon
fi
mapfile -t master_jars < <(find "$master_dir/build/libs" -maxdepth 1 -type f \
-name 'blue-language-java-*.jar' \
! -name '*-sources.jar' ! -name '*-javadoc.jar' ! -name '*-jmh.jar')
mapfile -t candidate_jars < <(find build/libs -maxdepth 1 -type f \
-name 'blue-language-java-*.jar' \
! -name '*-sources.jar' ! -name '*-javadoc.jar' ! -name '*-jmh.jar')
test "${#master_jars[@]}" -eq 1
test "${#candidate_jars[@]}" -eq 1
tools/check-binary-api.sh \
"${master_jars[0]}" \
"${candidate_jars[0]}" \
build/reports/binary-api/master-to-candidate.txt
if [[ -n "$previous_rc_tag" ]]; then
mapfile -t previous_rc_jars < <(find "$previous_rc_dir/build/libs" -maxdepth 1 -type f \
-name 'blue-language-java-*.jar' \
! -name '*-sources.jar' ! -name '*-javadoc.jar' ! -name '*-jmh.jar')
test "${#previous_rc_jars[@]}" -eq 1
tools/check-binary-api.sh \
"${previous_rc_jars[0]}" \
"${candidate_jars[0]}" \
build/reports/binary-api/previous-rc-to-candidate.txt
printf 'Previous RC baseline: %s\n' "$previous_rc_tag" \
> build/reports/binary-api/previous-rc-baseline.txt
else
printf 'Previous RC baseline: none; master is the only baseline\n' \
> build/reports/binary-api/previous-rc-baseline.txt
fi

- name: Commit and tag RC version
run: |
git add .cz.toml
git commit -m "chore: release ${{ steps.version.outputs.version }}"
git tag -a "v${{ steps.version.outputs.version }}" -m "Release ${{ steps.version.outputs.version }}"
- name: Verify final Language 1.0 and Contracts kernel 1.0 API baseline
run: ./gradlew verifyFinalApiBaseline

- name: Tag verified RC version
run: git tag -a "v${{ steps.version.outputs.version }}" -m "Release ${{ steps.version.outputs.version }}"

# Publish the unique version reservation before any remote artifact upload.
# A failed release can then advance to a new RC instead of reusing a
Expand Down Expand Up @@ -202,8 +156,9 @@ jobs:
with:
name: rc-artifacts
path: |
build/libs
build/publications
blue-*/build/libs
blue-*/build/publications
build/staging-deploy
build/release
build/reports/binary-api
build/reports
build/jreleaser
33 changes: 25 additions & 8 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,12 +44,27 @@ jobs:

- name: Setup Gradle
uses: gradle/gradle-build-action@v2

- name: Execute Gradle build
run: >-
./gradlew clean build identityDifferentialTest
patchSequenceDifferentialTest memoryIntegrationTest cacheLifecycleTest
jmhClasses sourceReleaseArchive

- name: Configure reproducible build timestamp
run: echo "SOURCE_DATE_EPOCH=$(git show -s --format=%ct HEAD)" >> "$GITHUB_ENV"

- name: Execute clean Gradle build
run: ./gradlew clean build

- name: Execute RC verification
run: ./gradlew rcVerify

- name: Verify reproducible source release
run: |
mapfile -t source_archives < <(find build/release -maxdepth 1 -type f -name '*-source-release.zip')
test "${#source_archives[@]}" -eq 1
first_sha="$(sha256sum "${source_archives[0]}" | awk '{print $1}')"
./gradlew sourceReleaseArchive --rerun-tasks
second_sha="$(sha256sum "${source_archives[0]}" | awk '{print $1}')"
test "$first_sha" = "$second_sha"

- name: Verify final Language 1.0 and Contracts kernel 1.0 API baseline
run: ./gradlew verifyFinalApiBaseline

- name: Execute Gradle publish
run: ./gradlew publish
Expand All @@ -70,7 +85,9 @@ jobs:
with:
name: artifacts
path: |
build/libs
build/publications
blue-*/build/libs
blue-*/build/publications
build/staging-deploy
build/release
build/reports
build/jreleaser
8 changes: 7 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,12 @@ bin/

### Mac OS ###
.DS_Store
.jqwik-database
__pycache__/
*.py[cod]

# Local repository snapshots and downloaded release bundles.
/*.zip

.cicd
.fake
.fake
29 changes: 29 additions & 0 deletions ARCHITECTURE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Blue Language Java architecture

This repository is a layered Java 8 distribution for two specifications:

- Blue Language 1.0 defines the graph, Source pipeline, BlueId, provider
evidence, immutable snapshots, matching, and patching semantics.
- Blue Contracts and Processor 1.0 defines deterministic processing of one
Root and one event, including runtime extension, gas, lifecycle,
checkpoints, diagnostics, and Root-only output.

The dependency rule is simple: Contracts may use Language public APIs;
Language never imports Contracts. Conformance and examples sit above both.
Optional mapping and IPFS integrations do not leak into the minimal model or
core artifacts.

Start with the [architecture overview](docs/architecture/overview.md). The
following focused documents cover the implementation:

- [modules and dependencies](docs/architecture/modules-and-dependencies.md);
- [Language pipeline](docs/architecture/language-pipeline.md);
- [Contracts pipeline](docs/architecture/contracts-pipeline.md);
- [immutability and runtime state](docs/architecture/immutability-and-runtime-state.md);
- [provider and fragment model](docs/architecture/provider-and-fragment-model.md);
- [conformance and release](docs/architecture/conformance-and-release.md).

Normative decisions are recorded in [docs/adr](docs/adr). Architecture tests
enforce package cycles, module edges, split packages, build shape, visibility,
and source ownership. Generated inventories and the final quality report are
evidence; the specifications and bound fixture packages remain authoritative.
36 changes: 34 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,27 @@

### Feat

- bind the corrected 128-fixture Language 1.0 and 140-fixture Contracts 1.0
conformance packages and add a strict machine-readable release gate
- add the generic cyclic-set member mutation guard before provider demand
- split canonical identity construction from author-facing minimization
- add immutable `FrozenJsonPatch` APIs for direct frozen patch-value handoff
- add configurable per-runtime cache policy, cache statistics, and idempotent runtime close
- add explicit low-memory, high-throughput, and disabled cache policy profiles
- add production-path processing metrics snapshots and conservative patch-impact classification
- add immutable same-scope External Channel member context, including a shallow
effective-type-family view whose exact dependencies participate in
subscription invalidation, checkpoint domains, and sparse evidence verification
- add event-scoped External Channel pattern matching with inline/reference
parity through a pass-local verified snapshot-manager boundary
- admit exact pure-reference Root and Event inputs through verified
demand-driven fragments without recursively expanding the full graph
- add immutable same-scope handler routing and logical-delivery coalescing
while raw accepted sources retain atomic checkpoint ownership
- add an event-scoped exact-reference materializer and representation-blind
default projection for referenced subscription-key fragments
- preserve exact inline checkpoint subjects and expose both the frozen current
subject and exact prior subject to channel newness policies

### Performance

Expand All @@ -20,14 +37,27 @@

### Compatibility

- retain all existing mutable patch APIs and Java 8 bytecode targeting
- remove deprecated pre-1.0 aliases, routed-delivery carriers, trusted provider
behavior, ambiguous reverse APIs, and fatal-termination compatibility paths
- retain the released `NodeProviderWrapper.unverified(...)` and
`isExplicitlyHostTrusted(...)` descriptors for downstream binary linkage
while enforcing verification and always denying host trust
- keep raw accepted sources as checkpoint owners while allowing immutable
same-scope handler selection and logical-delivery coalescing
- document the named live counter stream used by downstream BEX 2.0 runtime
integrations to supply conforming child-ledger traces
- retain Java 8 bytecode targeting
- preserve full-resolution fallbacks for schema, fixed-value type, reference, collection,
contracts-changing, custom-merger, and unknown-capability cases
- add reproducible source-release archives and JVM descriptor compatibility reporting
- pin the Gradle wrapper distribution checksum
- honor `SOURCE_DATE_EPOCH` for reproducible build metadata timestamps

### Fix

- pass all corrected Contracts fixtures without an expected-failure whitelist
- preserve whole-invocation rollback and zero provider demand when rejecting
traversal below a cyclic-set member reference
- keep nested transient planning scopes from closing parent reference state
- serialize shared processor-registry and type-resolution updates against processing and reject
lock upgrades instead of deadlocking
Expand All @@ -37,6 +67,8 @@
cache-sensitive work
- isolate retained conformance views from refreshed cache generations
- bound transient trusted reference retention and report its real eviction/rejection counters
- merge an admitted named runtime child ledger before rollbackable handler
effects so its gas and ordered trace survive a later runtime-fatal rollback

## v2.0.0 (2026-05-13)

Expand All @@ -58,7 +90,7 @@

### Feat

- use core type blue ids from blue-repository (#11)
- adopt canonical core type BlueIds (#11)

### Fix

Expand Down
22 changes: 22 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Contributing

Thank you for improving Blue Language Java. Begin with the complete
[developer process](docs/developer-process.md); it contains prerequisites,
module ownership, coding/test conventions, fixture and registry procedures,
API baseline rules, benchmark commands, and the RC checklist.

The short version:

1. Put the change in the owning module and keep the dependency graph acyclic.
2. Preserve exact identity, provider outcomes, deterministic gas, immutable
runtime state, and atomic Contracts behavior.
3. Add useful comments and named constants for stable protocol values.
4. Write deterministic `should...` tests with Given–When–Then sections.
5. Run focused tests, the owning module gates, examples/documentation, exact
conformance, and the final release verification appropriate to the change.
6. Never update a fixture identity, API baseline, semantic baseline, or release
binding merely to silence a failure.

Use the [repository ownership table](docs/developer-process.md#which-repository-owns-this)
before adding ecosystem-specific behavior. BEX and Coordination features do
not belong in this repository.
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2024 ITC
Copyright (c) 2025 Blue Language Labs Inc.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
Loading
Loading