fix: remove vestige-agent from workspace (not shipped), improve reasoning chain output

- Removed vestige-agent and vestige-agent-py from workspace members
  (ARC-AGI-3 code, not part of Vestige release — caused CI failure)
- Improved deep_reference reasoning chain: fuller output with arrows on
  supersession reasoning, longer primary finding preview, fallback message
  when no relations found, boosted relation detection for search results
  with high combined_score

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Sam Valladares 2026-04-09 17:06:24 -05:00
parent 04781a95e2
commit 5b1127d630
10 changed files with 43 additions and 34 deletions

View file

@ -245,11 +245,11 @@ describe('EffectManager', () => {
expect(n1Pulses.length).toBeLessThanOrEqual(1);
});
it('applies scale bump to contacted nodes', () => {
it('adds pulse to contacted nodes instead of direct scale mutation', () => {
const nodePositions = new Map<string, any>([
['bump', new Vector3(3, 0, 0)],
]);
const mesh = createMockMesh('bump', new Vector3(3, 0, 0));
createMockMesh('bump', new Vector3(3, 0, 0));
effects.createRippleWave(new Vector3(0, 0, 0) as any);
@ -258,8 +258,9 @@ describe('EffectManager', () => {
effects.update(nodeMeshMap, camera, nodePositions);
}
// Scale should have been bumped (1.3x)
expect(mesh.scale.x).toBeGreaterThan(1.0);
// Ripple wave should add a pulse effect (not a direct scale mutation)
const bumpPulses = effects.pulseEffects.filter(p => p.nodeId === 'bump');
expect(bumpPulses.length).toBeGreaterThan(0);
});
it('completes and cleans up after 90 frames', () => {

View file

@ -335,11 +335,8 @@ export class EffectManager {
rw.pulsedNodes.add(id);
// Mini-pulse on contact
this.addPulse(id, 0.8, new THREE.Color(0x00ffd1), 0.03);
// Mini scale bump on the mesh
const mesh = nodeMeshMap.get(id);
if (mesh) {
mesh.scale.multiplyScalar(1.3);
}
// Pulse handles the visual bump — no direct scale mutation
// (multiplyScalar was cumulative and fought with animation system)
}
});
}

View file

@ -115,7 +115,7 @@ export function mapEventToEffects(
id: data.id,
label: (data.content ?? '').slice(0, 60),
type: data.node_type ?? 'fact',
retention: data.retention ?? 0.9,
retention: Math.max(0, Math.min(1, data.retention ?? 0.9)),
tags: data.tags ?? [],
createdAt: new Date().toISOString(),
updatedAt: new Date().toISOString(),

View file

@ -205,7 +205,11 @@ export class NodeManager {
private createTextSprite(text: string, color: string): THREE.Sprite {
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d')!;
const ctx = canvas.getContext('2d');
if (!ctx) {
const tex = new THREE.Texture();
return new THREE.Sprite(new THREE.SpriteMaterial({ map: tex, transparent: true, opacity: 0 }));
}
canvas.width = 512;
canvas.height = 64;