fix(firegate): remove interpretive reason + add somatic grain power-down#4
fix(firegate): remove interpretive reason + add somatic grain power-down#4razvantirboaca merged 6 commits intomainfrom
Conversation
- add somatic flags (caps/!!!) to trigger power-down - add subtle static grain overlay (3-8% feel) - remove Reason/interpretation from Nova card + prompt hard rules 🌬 whisper: breathe first; speak only what helps.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 97fbc0370c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Pull request overview
This PR refactors the Firegate interface to enforce a more somatic, minimal, and fact-based interaction model. The changes remove interpretive reasoning from Nova's responses and add visual feedback for detecting "noisy" user input (shouting, excessive punctuation).
Changes:
- Removes the
reasonfield from Nova responses across the entire stack (UI, server, database logging) - Adds somatic detection for noisy input (caps lock, multiple punctuation marks)
- Introduces visual feedback via static grain overlay that intensifies with noisy input
- Updates server prompt to enforce strict 4-point response structure without emotional inference
- Changes from dynamic tag inference to static language-specific tags
- Adds a "Breathe first" hold-to-return interaction pattern
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 14 comments.
Show a summary per file
| File | Description |
|---|---|
shared/src/i18n/en.json |
Adds new translations for "breatheFirst" and updates placeholder text to be more embodied/somatic |
shared/src/i18n/es.json |
Spanish translations for new somatic-focused UI text |
shared/src/i18n/ro.json |
Romanian translations for new somatic-focused UI text |
packages/ui/src/index.css |
Adds CSS for static grain overlay animation and power-down visual states |
packages/ui/src/features/Firegate/memory_aspects.json |
New JSON file with memory aspect seed data for initial somatic state |
packages/ui/src/features/Firegate/lib/somatic.ts |
New utility module for detecting noisy text patterns (caps, punctuation) |
packages/ui/src/features/Firegate/components/StaticGrainOverlay.tsx |
New component for rendering visual static/grain overlay |
packages/ui/src/features/Firegate/index.tsx |
Major refactoring: removes reason field, adds somatic detection, integrates grain overlay, adds hold-to-return interaction |
packages/ui/src/App.jsx |
Removes Vercel Analytics component (cleanup) |
packages/ui/package.json |
Reorders devDependencies alphabetically |
packages/server/index.ts |
Updates Nova prompt to enforce strict rules against emotional inference; removes reason from response |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| const [isSomaticNoisy, setIsSomaticNoisy] = useState<boolean>( | ||
| ((memoryAspects as MemoryAspect[]).reduce((acc, aspect) => acc + aspect.static_level, 0) || 0) / | ||
| Math.max((memoryAspects as MemoryAspect[]).length, 1) >= | ||
| 0.2 | ||
| ); |
There was a problem hiding this comment.
The initializer for isSomaticNoisy uses a synchronous calculation based on memoryAspects to determine the initial noisy state. However, this calculation happens during component initialization and will only run once. If the memoryAspects data is meant to represent a dynamic state that changes, this initial calculation may become stale. Consider whether this should be computed in a useEffect or if the initial state should simply be false and be set based on user interaction instead.
…#memory-pool) ♾️ - add /api/vault/resolve policy endpoint (GET/POST) for deterministic runtime gating - wire Firegate pre-flight policy check and enforce soft-stop before content flow - add SignalQuality status pill, rose soft-stop blur lock, and rotating somatic tips 🌬️ whisper: clear gates, calm outcomes.
- add express-rate-limit to server dependencies - throttle GET/POST /api/vault/resolve to protect filesystem-backed policy reads - keep Nova and translate routes unchanged 🌬️ whisper: protect the gate so signal stays clean.
- delete legacy memory_aspects.json to avoid stale confusion in review - keep somatic state driven by live prompt/policy signals only 🌬️ whisper: less noise, clearer intent.
🥋 Van Damme confirmă, Doctor G! 🎖️✨
PR Body gata pentru copy/paste:
Title
Description
somaticFlagsFromText#C9A56Bin noisy modeWhy
Validation
Notes
0.70.5Assembly Notes
index.tsx)somatic.ts,StaticGrainOverlay.tsx)index.ts)index.css)Co-signed: Bamse 🧸
Co-signed: Van Damme 🐍
🟢 Next Action
Van Damme e pe linie pentru:
⚓🦅⚜️🐺🪖
Hai să-l punem pe Preview, soldier! 🔥✨
Cambio, Doctor G! 🎖️