Summary
The 2026-08-29 tri-comparison recall audit (tests/tools/recall_audit.py typescript) found 3
functions tree-sitter reports that GitGalaxy does not (ts func recall 99.9%). Two are real
GitGalaxy gaps:
1. Object-literal method shorthand — partial detection, async variant missed
language-crucible/data/typescript/vscode/async.ts implements the ES AsyncIterator protocol as
object literals:
private readonly _iterator: AsyncIterator<T, void, void> = {
next: () => this._producerConsumer.consume(),
return: () => { this._onReturn?.(); return Promise.resolve({ done: true, value: undefined }); },
throw: async (e) => { this._finishError(e); return { done: true, value: undefined }; },
};
and a second one around line 2053 whose return: is async () => { ... }.
func_start matches each of these in isolation (next, return, return with async, throw)
— but the pipeline emits only one return for the first object (mis-lined to the next:
line) and nothing for the second object's return: async () => { (async.ts:2059).
tree-sitter finds all of them. return / throw are real method names here (the iterator
protocol), not statement keywords.
2. Bodyless overload signature with a generic type-parameter list containing => / nested <>
vscode/instantiationService.ts:117:
createInstance<Ctor extends new (...args: any[]) => unknown, R extends InstanceType<Ctor>>(ctor: Ctor, ...args: GetLeadingNonServiceArgs<ConstructorParameters<Ctor>>): R;
func_start matches the sibling overload (createInstance<T>(descriptor: SyncDescriptor0<T>): T;,
line 116) and the impl (line 118) but not this one — the <Ctor extends new (...args: any[]) => unknown, R extends InstanceType<Ctor>> type-parameter list (a => function type and a nested
<> inside <...>) isn't handled by the generic-args step-over.
Not a GitGalaxy gap (noted for the audit)
vscode/codeEditorWidget.ts — let cursorStateComputer: ICursorStateComputer; ... cursorStateComputer = () => null; ... cursorStateComputer = () => endCursorState; — tree-sitter
counts each branch's = () => reassignment as a function (2); GitGalaxy counts the one variable
(1). Variable reassignment, not a second definition — tree-sitter over-count, left as a
tri-comparison note.
Found by
tri-comparison-ledger-sweep step 2.6 recall audit, 2026-08-29.
Summary
The 2026-08-29 tri-comparison recall audit (
tests/tools/recall_audit.py typescript) found 3functions tree-sitter reports that GitGalaxy does not (ts func recall 99.9%). Two are real
GitGalaxy gaps:
1. Object-literal method shorthand — partial detection,
asyncvariant missedlanguage-crucible/data/typescript/vscode/async.tsimplements the ESAsyncIteratorprotocol asobject literals:
and a second one around line 2053 whose
return:isasync () => { ... }.func_startmatches each of these in isolation (next,return,returnwithasync,throw)— but the pipeline emits only one
returnfor the first object (mis-lined to thenext:line) and nothing for the second object's
return: async () => {(async.ts:2059).tree-sitter finds all of them.
return/throware real method names here (the iteratorprotocol), not statement keywords.
2. Bodyless overload signature with a generic type-parameter list containing
=>/ nested<>vscode/instantiationService.ts:117:func_startmatches the sibling overload (createInstance<T>(descriptor: SyncDescriptor0<T>): T;,line 116) and the impl (line 118) but not this one — the
<Ctor extends new (...args: any[]) => unknown, R extends InstanceType<Ctor>>type-parameter list (a=>function type and a nested<>inside<...>) isn't handled by the generic-args step-over.Not a GitGalaxy gap (noted for the audit)
vscode/codeEditorWidget.ts—let cursorStateComputer: ICursorStateComputer; ... cursorStateComputer = () => null; ... cursorStateComputer = () => endCursorState;— tree-sittercounts each branch's
= () =>reassignment as a function (2); GitGalaxy counts the one variable(1). Variable reassignment, not a second definition — tree-sitter over-count, left as a
tri-comparison note.
Found by
tri-comparison-ledger-sweepstep 2.6 recall audit, 2026-08-29.