v1.2.0
🚧 The barrier is now always on screen
Fence's proof of protection in Claude Code is no longer a chat message that scrolls away — it's a persistent status line at the bottom of the UI, for the whole session:
🚧 Fence v1.2.0 · 1 pack · 19 rules
If rulepacks fail to load, the line says so instead of showing a quietly lower count (— ⚠️ 1 rulepack failed to load), and if Fence can't load its rules at all, it tells you plainly that tool calls are not being screened. A session without the barrier on screen isn't guarded — now you can tell at a glance, the entire time.
Plays nice with your own status line
The statusLine slot is yours, and Fence never takes it from you:
- Already have a status line — in the target settings, your user-level
~/.claude/settings.json, orsettings.local.json?fence initleaves it untouched and announces through the SessionStart chat banner instead, telling you how to combine the two (append the output offence hook claude-code statuslinefrom your own statusline command). - Configured your own status line after Fence installed its? The next
fence initsteps aside automatically. fence uninstallremoves Fence's status line and never anyone else's.
Upgrading
The status line arrives on your next fence init re-run:
brew upgrade fence # or: npm update -g @hoophq/fence
fence init --global # or per-project: fence initExisting installs keep working unchanged (the SessionStart banner still ships in the binary) — re-running fence init migrates them to the status line. Codex and OpenCode keep their session banners; neither has a status-line surface.
Full Changelog: v1.1.0...v1.2.0