Weekly signal · Issue 001Preview · Thursday · Stable link

Foundation week

The foundation
moved forward.

A dense week of language, runtime, and authoring work made Neo projects easier to express, safer to evolve, and more dependable to ship.

87
Merged pull requests

Frozen in this run’s source manifest

+186.5k41.9k
Lines changed

2,000 changed-file touches

4
Pull requests in flight

Open at the collection snapshot

1/1
Open / closed issues

2 issues opened this window

Executive briefing

What matters this week

Two changes capture the direction beneath the volume.

01
Expressiveness

NeoScript crossed a capability threshold.

Constructors, initializer expressions, addressable fields, animation, and same-push references turn complex authored graphs into coherent source rather than multi-step coordination.

02
Runtime confidence

Unity parity became a release discipline.

Companion SDK changes landed beside their web implementations, while automated package releases and Linux authentication tightened the path from authoring to a running game.

Visual evidence

See what shipped.

Selected directly from the pull requests and preserved with this report.

Neo Compose live animation preview showing the rocket idle animation
P29 · Animation

Authored motion, visible immediately

The new animation model reaches all the way into a live authoring preview, backed by the matching deterministic Unity runtime.

View PR #184
Neo Compose member editor showing the NeoScript initializer tab
P43 · Initializers

Executable defaults have a first-class home

Literal values and NeoScript initializers share a focused editor instead of hiding executable behavior inside serialized state.

View PR #252
NeoScript initializer drawer showing contextual code completions
P43 · Language service

The full language service follows

Completions, hover, signatures, navigation, and authored-coordinate diagnostics work inside initializer expressions.

View PR #252
Project ledger

The week, repository by repository

Grouped by product meaning, with direct links back to the merged work.

74merged
+141k31.4k1,745 files
The center of gravity

Neo Compose

NeoScript became dramatically more expressive.

The authoring stack moved from foundational animation work through a broad schema-hardening sequence, then landed constructors, initializer expressions, addressable structured fields, and same-push references.

A richer language

The largest product-facing steps make authored Neo source feel less like serialized data and more like a capable, composable language.

Constructors and initializer expressions

P43

Classes can declare overloads and executable initialization logic, with matching server validation, Monaco authoring support, export, and SDK behavior.

References that resolve inside the same push

P47

New value rows can be referenced by key or root path across files and declaration order, eliminating UUID handoffs and multi-push workflows.

Animation arrived end to end

P29

NeoObject animation clips gained an authored model, deterministic frame resolution, actions, child tracks, export, and the web-side editing experience.

Safer structure, smoother authoring

A coordinated run of schema and client work reduced hidden identity state, made async work visible, and improved recovery when something goes wrong.

Schema identity became deterministic

Entry members, member-owned values, and system records now derive stable identities from source, with staged migrations and explicit cleanup.

Writes now communicate honestly

Autosave surfaces were unified, accepted work no longer masquerades as completed work, and long transactions expose progress instead of silently polling.

The editor received a practical polish pass

Class views, sorting preferences, grid interactions, scrolling, dialogue controls, member values, and error recovery all became more predictable.

11merged
+45.5k10.5k253 files
Runtime parity

Neo Compose · .NET

The Unity SDK kept pace—and learned to ship itself.

The .NET runtime landed matching animation, schema, constructor, and object-rendering capabilities, then added automated package releases and Linux editor authentication fixes.

One language, both runtimes

Companion changes kept generated C# and the Unity runtime aligned with the web implementation.

Animation runtime

Deterministic playback, sparse overrides, actions, child tracks, cancellation, and hot-reload behavior shipped with deep Unity coverage.

Constructors and structured values

Declared constructors, initializers, optional children, addressable leaf fields, and authored nested-row provenance now round-trip through generated clients.

Rendering contracts replaced reflection

Sorting groups and sprite-renderer metadata now flow through typed generated contracts, including nested compositions and refreshed samples.

Release confidence

Operational work made the package easier to authenticate, validate, and release from the supported environments.

Linux device authorization repaired

The Unity package release includes the matching device-auth lifecycle fix needed by Linux editors.

Unity package releases automated

The package now has a repeatable release path instead of depending on a hand-driven sequence.

02merged
+8982 files
Decision log

Neo Compose · Specs

Two rollout decisions were tightened before implementation drifted.

The specs folded member-value re-identification into the existing P39 migration and changed durable-write conversion from batches to one coordinated release.

Decisions made explicit

Small spec changes with large sequencing consequences.

One migration surface for derived identities

P39 now repairs member-owned value rows during the same planned rewrite, with an explicit refusal case for shared rows.

Durable writes ship together

P36 keeps the cascade-heavy implementation order but removes partial rollout as a shipping boundary.

Quiet this window

Silence is recorded explicitly—no ambiguity between zero activity and a failed collection.

No merged pull requests

Neowyn

The Unity game and product experience

No merged pull requests

Neo Compose · Site

Public product and documentation site

Workflow contract

A weekly memory that cannot quietly drift.

01

Resume from the last successful cutoff.

02

Freeze one PR inventory before analysis.

03

Advance state only after delivery succeeds.

Complete source index

Every merge behind the briefing

Searchable, filterable, and linked directly to GitHub.

87 results
P47: same-push value referencesNeo Compose · #258+4,43317114 filesFix Hello World system map orbitsNeo Compose · .NET · #57+17858 filesAutomate Unity package releasesNeo Compose · .NET · #56+17501 filesadded worktrees to vercelignore and regenerated convex _generated typesNeo Compose · #257+122 filesRelease v0.13.1 Linux editor auth fixesNeo Compose · .NET · #55+1,1192912 filesFix device authorization with Better Auth 1.6.17Neo Compose · #256+139592 filesAdd Linux Terraform provider checksumsNeo Compose · #255+502 filesPoint P44 spec links at its completed locationNeo Compose · #253+222 filesRetire the P44 attestation retirement migration artifactsNeo Compose · #254+72567 filesImplement P43: NeoScript initializers and declared constructorsNeo Compose · .NET · #54+7,56111833 filesImplement P43: NeoScript initializers and class constructorsNeo Compose · #252+24,647783219 filesRetire P44's migration artifactsNeo Compose · #251+2151,91213 filesRe-trigger a failed blocking migration before failing the deployNeo Compose · #250+7163 filesImplement P44: authored provenance for nested class rowsNeo Compose · .NET · #53+890115 filesImplement P44: authored provenance for nested class rowsNeo Compose · #249+5,0321,54449 filesRetire P42's migration artifactsNeo Compose · #248+73586 filesImplement P42: addressable fields on structured leaf membersNeo Compose · .NET · #52+10,52931262 filesImplement P42: addressable fields on structured leaf membersNeo Compose · #246+14,745876121 filesFix scroll containers and add dialogue view controlsNeo Compose · #247+7177625 filesImprove member values and error recovery UXNeo Compose · #245+1,73110227 filesFix grid inspector interactionsNeo Compose · #244+74313426 filesRetire P41's migration artifactsNeo Compose · #243+334337 filesImplement P41: optional object children in the SDKNeo Compose · .NET · #51+2,77614224 filesImplement P41: optional object childrenNeo Compose · #242+7,09528075 filesFix CLI progress and reliability for large pushesNeo Compose · #241+1,95664121 filesRetire P40's migration artifactsNeo Compose · #240+493696 filesAttach sorting groups, apply sprite renderer state, and retire the renderer's reflectionNeo Compose · .NET · #50+1,65437621 filesImplement P40: sorting groups and sprite renderer metadataNeo Compose · #239+4,39851056 filesPoint the system schema spec links at P39's completed pathNeo Compose · #237+222 filesupdate convex generated codeNeo Compose · #238+021 filesRetire P39's last artifacts and delete the localized enum option toleranceNeo Compose · #236+1131,99834 filesClose P39: derive authored record ids, repair stored ones, and gate the schema pipelineNeo Compose · #235+1,7084520 filesRetire the P39 system record re-identificationNeo Compose · #234+863,60125 filesRelease the CLI that accepts system-prefixed enum option idsNeo Compose · #233+1523 filesScope the re-identification's hash repair, bound the reindex mutation, and stop the retention scan's moving cutoffNeo Compose · #232+319115 filesScope the re-identification's hash repair to what it plannedNeo Compose · #231+18602 filesQueue the system record re-identification for productionNeo Compose · #230+1612 filesSync the sample onto the reserved system ids and stamp the generic list fixtureNeo Compose · .NET · #49+9,9459,31942 filesStamp the synth fixture's generic list row the way authoring doesNeo Compose · #229+8461 filesMove NeoSmartTileOptionIds into the reserved system id namespaceNeo Compose · .NET · #48+42223 filesRe-identify every system record under a reserved prefixNeo Compose · #228+4,97773592 filesEnumerate the system record reference surfaceNeo Compose · #227+2,53505 filesServe the system schema from canonical sourceNeo Compose · #226+1,4931,68016 filesRestore contract hash migration test coverageNeo Compose · #225+1544510 filesEnforce no test-only runtime filesNeo Compose · #218+1,08680960 filesAuthor the world system schema as Neo sourceNeo Compose · #224+3,9906652 filesKeep an open modal reachable by role in jsdom testsNeo Compose · #223+13934 filesDerive the member id a constructed generic's type argument carriesNeo Compose · #222+5026319 filesRetire the P39 world system schema reconcile stanzaNeo Compose · #220+561777 filesConverge every project version on the world system schemaNeo Compose · #219+1,9654212 filesBuild every world system class from one seed builderNeo Compose · #217+2552778 filesStore system enum option text as a plain English literalNeo Compose · #216+771,75316 filesLet a system member carry its own documentationNeo Compose · #215+9584 filesDerive the value row a member owns instead of authoring itNeo Compose · #214+3877715 filesP39: fold the member value row re-id into the same runNeo Compose · Specs · #5+7231 filesOrder member creates ahead of the classes that declare themNeo Compose · #213+15944 filesFix two push blockers: the transaction status contract and bare new() defaultsNeo Compose · #212+3181410 filesStop requiring a value row for a computed schema keyNeo Compose · #211+5702 filesResolve source-derived pending identities across a position shiftNeo Compose · #210+11932 filesKeep isReadOnly absent unless it has something to overwriteNeo Compose · #209+31106 filesP38 section 4: base-free lowering parity, three closed gaps, and the corpus repairNeo Compose · #208+6908511 filesfixture updates for cli 0.10.1Neo Compose · #207+004 filesRetire the P38 entry member re-id migrationNeo Compose · #206+351,28418 filesImprove model page views and sortingNeo Compose · #205+1,06416225 filesP38 section 1: derive entry member ids and re-id the stored onesNeo Compose · #204+1,54814827 filesMake the shared makeEnum fixture build valid enum recordsNeo Compose · #203+39524720 filesAdd Classes view and sort preferencesNeo Compose · #202+7393017 filesP36: stop hiding durable structure writes behind a blocking server waitNeo Compose · #201+2,93188131 filesP36: ship the durable-write conversions in one PRNeo Compose · Specs · #4+1751 filesP38: make .neo source own list indexes, column settings, and member-selector visibilityNeo Compose · #200+8811115 filesP35: unify autosave debounce and save-status surfacesNeo Compose · #199+1,56170264 filesNormalize static seed graph verification orderNeo Compose · #198+58102 filesP34: stop swallowing failed writesNeo Compose · #197+1,94426639 filesStabilize provisional list subtree identitiesNeo Compose · #196+174238 filesVerify staged bytes for provisional project filesNeo Compose · #195+62232 filesRe-lower provisional list rows as seedsNeo Compose · #194+8156 filesP33: give create-and-navigate actions immediate feedbackNeo Compose · #193+1,14222322 filesAccept value records in Neo schema commitsNeo Compose · #192+7802 filesP32: stop reporting success for accepted-but-unfinished writesNeo Compose · #191+1,57621725 filesSupport idless list item creation in Neo CLINeo Compose · #190+5973810 filesTake the list add affordance out of the scrolling tableNeo Compose · #188+3562014 filesFix P29 CLI prospective member validationNeo Compose · #189+3689 filesP31: surface async transaction progress instead of silently pollingNeo Compose · #187+2,08620232 filesP30: establish one client-perceived-performance contractNeo Compose · #186+7302110 filesRetire P29 animation migrationNeo Compose · #185+9886910 filesP29: add Neo animation clip runtimeNeo Compose · .NET · #47+10,60519342 filesP29: implement NeoObject animation clipsNeo Compose · #184+35,1415,798210 files