| Item | Value |
|---|---|
| Previous prototype pin | 4d478e0b37196a545c516570b3198aa4b6cfdd14 |
| New pin | 614937bb8856713d18dc6709af09638b276f465e |
| Upstream ref inspected | origin/master in the local Bondage-College clone |
| Upstream head timestamp | 2026-10-28T23:11:20-04:00 |
| GameVersion | R133 at both revisions |
| Commit range | 127 commits: 95 non-merge and 32 merge |
| Changed paths | 744 files; 12,928 insertions and 7,474 deletions, including images |
This updates the prototype’s source pin, not the deployed BC server. The generators read pinned Git blobs; they do not depend on the BC checkout’s working tree. The upstream comparison contains the full range.
Commit cda5bb2868b9cf9d4bcb5e7e44c605adf5b0de28 moves default color metadata
from each asset definition into its colorable layer definitions. AssetGroup
no longer exposes DefaultColor; AssetLayerDefinition.Color is an optional
list of preset colors, with its first value defining that layer’s default.
BC’s AssetAssignDefaultColor then builds the asset’s DefaultColor vector by
ColorIndex, following CopyLayerColor references and falling back to the
group’s first ColorSchema value.
The previous extractor only read the removed asset-level field. Re-pinning without changing it would have silently replaced many custom item defaults with the generic group fill. The extractor now follows BC’s per-layer rule, preserves source layer color metadata, and retains the old asset-level override path for regression coverage. It never evaluates upstream browser code.
The regenerated catalog contains 85 groups and 2,658 assets, with 17 new
assets and no removed assets. 209 unsupported-source diagnostics remain
explicit; these are catalog limitations, not runtime failures. The catalog
contains 175 changed computed DefaultColor vectors relative to the prior
generated catalog. The current item additions are:
ItemArms/Handraisedbar, ItemArms/PetUpperSuit,
ItemArms/SimpleRopeBondage, ItemArms/RestraintPillowItemPelvis/FortuneChastityBeltItemMouth2/ShapedMouthCage, ItemMouth3/ShapedMouthCageItemMisc/PumpkinPotItemDevices/LatexbeltBed, ItemDevices/TrashCan,
ItemDevices/GiantStuffedToy, ItemDevices/LegSpreadDisplayStand,
ItemDevices/BoxingBag, ItemDevices/Seizaisu,
ItemDevices/UnicornStuffedToy, ItemDevices/GlassJar,
ItemDevices/ShackledOneBarPrisonThe catalog remains descriptive metadata, not permission to mutate every item. The headless codec still rejects unresolved or unsupported definitions, and the reviewed lock-mutation allowlist is unchanged. No database itemsets were read, rewritten, or migrated. Operators should review itemsets pinned to the previous catalog revision and configurations affected by changed item colors or selectors before applying them.
The generated map catalog now contains 170 tiles and 372 objects (up from
287 objects). Upstream introduces EmptySpace passable/impassable entries,
Kitchen and Office object categories, replacement metadata (DeprecatedID),
and editor palette metadata (PaletteImage). These fields are retained in the
serializable catalog; executable callbacks such as CanEnter are not copied.
No browser migration or pathfinding behavior is implemented by this update.
RecentlyUsedMapElements now uses the MapDoodadRef string-reference type
instead of full doodad records. The generated protocol shim preserves this
template-literal type. Other map type updates include DoodadType and the
additional doodad fields. Existing sign and teleporter configuration
validation and preservation remain unchanged.
The protocol declarations also refine several payload types, including nullable
ServerCharacterItemUpdate.Name, an explicit Sender in game responses, and
optional/undefined values in private-character data. MessagesPatch.d.ts is
unchanged. The event names remain 26 client-to-server and 30
server-to-client; there is no acknowledgement, rate-limit, or request
correlation change. No runtime consumer depended on the adjusted internal type
shapes, so declaration regeneration was sufficient.
The source GameVersion remains R133. This sync does not establish that the
configured server serves these assets or behavior, and it does not authorize
live appearance or map mutation.
Both the previous and current source pins identify as R133, and the bot’s
release-path guard still requires /R133/. The protocol diff changes
declarations only: event names, packet direction, acknowledgement behavior, and
rate limits are unchanged. The asset extractor retains the previous
asset-level DefaultColor path as well as the new per-layer path; existing map
IDs remain in the catalog, and the adapter retains category-specific Blank
references through the upstream EmptySpace migration.
This preserves the existing R133 integration contract, but the R133 version label alone cannot guarantee identical content across every historical source snapshot. The 17 newly cataloged assets and changed default colors are sourced from the current pin and may not exist or match on an older deployment snapshot. Qualifying a specific server build still requires testing against that build; offline tests do not certify its live asset data.
Regenerate deterministically from the selected revision:
BC_REPO=/path/to/Bondage-College npm run sync:bc
npm run lint
npm run format:check
npm run check
npm test
npm run build
No live BC connection, database inspection/write, deployment, or source-database copy is part of this sync. Live qualification remains a separate approval and must use a dedicated BC account against the intended server version.