Repository navigation
forge-sim v0.1.19
Fix release. Realtime now matches the real @forge/realtime package, the manifest validator accepts the shapes Forge added since July, and the @forge/llm shim knows about Opus 5 and Sonnet 5.
Realtime: channel scoping matches Forge (#11)
Thanks to @leanzero-srl for the production datapoint. The headless API collapsed every channel to a global one, so an app that leaked events across issues or modules passed locally and misbehaved in Forge. Verified against the real @forge/realtime 1.0.1 and @forge/bridge 5.17.0 packages, not just the docs; where the two disagreed, the package wins.
- Channel identity is built from product-context values, not names. A panel on issue 10001 no longer hears a publish from issue 10002.
contextOverridesare keyed by property name and value, so[Jira.Project]in project A and project B are different channels. contextOverridesreplace the default module scope instead of being ignored. Non-array overrides throw with Forge's exact message.publishGlobal()ignores overrides, as the real package does.signRealtimeToken()tokens are enforced on the bridge subscribe path.PublishResulton success is{ eventId, eventTimestamp }with noerrorskey, matching the package typings. Code that didif (result.errors)now behaves the same locally and in Forge.@forge/realtimeexports theJira,ConfluenceandBitbucketproduct-context enums;@forge/bridge/realtimesubpath resolves.- Re-renders triggered from a realtime subscriber are attributed to the subscribing module instead of the last-rendered one. The dev server, MCP tools and renderer bridge all pass the module's product context so scoping is identical across the three surfaces.
Manifest validation
@forge/manifest^12.9 to ^13.5. Manifests usingpermissions.sandbox,dashboards:filter,global:fullPageandjira:entityPropertySetnow validate at deploy and load time instead of being rejected. Regression test pins each accepted shape.
@forge/llm shim (#9, #12, #16, #21)
list()and real-passthroughchat()acceptclaude-opus-5,claude-opus-4-8,claude-opus-4-7andclaude-sonnet-5.claude-3-7-sonnetandclaude-3-5-haikuare gone fromlist()because Atlassian removed them from the supported-models page. A test pins the exact doc list so the next drift fails loudly.- Known gap, tracked separately: Forge rejects
temperatureandtop_pon the four new models; the shim still passes them through.
Dev mode
- State-writer lock: an orphaned
forge-sim devinstance can no longer clobber the persisted state of a newer one.
Docs
- ROADMAP rewritten for the post-release phase (0.2 platform catch-up, 0.3 graph and agents, 0.4 interop and determinism).
- Stats blocks refreshed: 2,731 tests across 146 files (2,566 core / 139 files), 41 MCP tools.
Full changelog: v0.1.18...v0.1.19