Finding #8 of the 2026-08 architecture review. #52 re-dated the notices; the removal itself is breaking.
Problem
Three deprecated members are still exported at v4.1.0:
| Member |
Location |
Status |
DispatcherInterface |
src/interfaces/DispatcherInterface.ts |
Unused internally since v3; the Dispatcher class it described was deleted |
CallbackInterface |
src/interfaces/DispatcherInterface.ts |
Same |
Event.getInvokeArgs() |
src/Event.ts |
Stub that always returns [] |
The first two were marked "will be removed in v4" and then shipped in v4 — the deprecation promise was missed, which is why #52 re-dated them to v5 rather than quietly leaving them. getInvokeArgs() is worse than dead weight: it is a method that compiles, runs, and silently returns the wrong answer for anyone still calling it, since invoke args now travel through Observer.update(subject, args).
Proposed direction
Delete all three, along with their re-exports in src/index.ts / src/interfaces/index.ts and their entries in docs/interfaces.md and docs/core.md.
Worth doing in the same pass: re-check every remaining @deprecated tag in the tree and give each one a version it will actually be removed in, so this does not recur.
Acceptance criteria
Finding #8 of the 2026-08 architecture review. #52 re-dated the notices; the removal itself is breaking.
Problem
Three deprecated members are still exported at v4.1.0:
DispatcherInterfacesrc/interfaces/DispatcherInterface.tsDispatcherclass it described was deletedCallbackInterfacesrc/interfaces/DispatcherInterface.tsEvent.getInvokeArgs()src/Event.ts[]The first two were marked "will be removed in v4" and then shipped in v4 — the deprecation promise was missed, which is why #52 re-dated them to v5 rather than quietly leaving them.
getInvokeArgs()is worse than dead weight: it is a method that compiles, runs, and silently returns the wrong answer for anyone still calling it, since invoke args now travel throughObserver.update(subject, args).Proposed direction
Delete all three, along with their re-exports in
src/index.ts/src/interfaces/index.tsand their entries indocs/interfaces.mdanddocs/core.md.Worth doing in the same pass: re-check every remaining
@deprecatedtag in the tree and give each one a version it will actually be removed in, so this does not recur.Acceptance criteria
DispatcherInterface,CallbackInterface, andEvent.getInvokeArgs()removed, including fromEventInterface.docs/.@deprecatedtags audited for a real removal target.docs/migration/.