mirror of
https://github.com/kuhyx/testsAndMisc.git
synced 2026-11-11 19:34:03 +01:00
i3 focus block: emoji suitcase, not FA PUA
Font Awesome private-use U+F0F2 failed the i3blocks private-use check and turned main's Shell tests CI red. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WzxdWXa4ytX9adN7qpMAop
This commit is contained in:
parent
87e6e73521
commit
1b5a040b31
@ -0,0 +1,11 @@
|
||||
{
|
||||
"intent": "Turn main's Shell tests CI green again: the focus_project i3blocks block used a Font Awesome private-use codepoint (U+F0F2) for the interview-trip suitcase, which the i3blocks config checks forbid.",
|
||||
"scope": ["linux_configuration/i3blocks/focus_project.sh", "linux_configuration/tests/test_i3blocks_focus_project.sh", "Non-goal: any other change to the focus block"],
|
||||
"changes": ["SUITCASE is now the luggage emoji U+1F9F3 (rendered by Noto Color Emoji, like the block's existing target emoji) in the block and its test"],
|
||||
"verification": [
|
||||
{"command": "bash linux_configuration/tests/test_i3blocks_efficiency.sh", "result": "pass", "evidence": "exit 0; was the failing check on CI run 43017516672"},
|
||||
{"command": "bash linux_configuration/tests/test_i3blocks_focus_project.sh", "result": "pass", "evidence": "exit 0, suitcase assertions use the emoji"}
|
||||
],
|
||||
"risks": ["The suitcase now renders as a colour emoji instead of a monochrome Font Awesome glyph"],
|
||||
"rollback": ["git revert this commit", "Shell tests CI goes red again on the private-use check"]
|
||||
}
|
||||
@ -1,39 +0,0 @@
|
||||
{
|
||||
"intent": "Make the issue dashboard (~/src/issue-dashboard) one click away from the i3 bar: an [issue_dashboard] block shows issues to do, agents working and work ready to merge, turns red when an agent or a proof failed, and a click opens the dashboard window the same way [book_guard] opens book-guard.",
|
||||
"scope": [
|
||||
"linux_configuration/i3blocks/issue_dashboard.sh - new block script",
|
||||
"linux_configuration/i3blocks/config - [issue_dashboard] entry after [book_guard], interval=30",
|
||||
"linux_configuration/tests/test_i3blocks_issue_dashboard.sh - behaviour test",
|
||||
"Non-goal: the dashboard itself (lives in ~/src/issue-dashboard, local repo); i3/i3blocks were not reloaded on the live session."
|
||||
],
|
||||
"changes": [
|
||||
"issue_dashboard.sh reads the one-line status.json the dashboard server rewrites on every refresh (~/data/issue-dashboard/status.json): '📋 <to do> · ⚙ <working> · ✓ <ready>', white normally, green when something is ready to merge, red with '· ✗ <n>' when an agent or a proof failed, grey '📋 dashboard' when the file is missing, unreadable or older than 180 s (server not running). Zero forks on the hot path: one builtin read, bash regex, printf clock.",
|
||||
"A click runs ~/.local/bin/issue-dashboard-desktop via setsid -f, which reuses the dashboard server or starts it detached and opens an app window.",
|
||||
"~/.config/i3blocks/issue_dashboard.sh symlinked to the repo file, the way i3/install.sh links every i3blocks/* file."
|
||||
],
|
||||
"verification": [
|
||||
{
|
||||
"command": "bash linux_configuration/tests/test_i3blocks_issue_dashboard.sh",
|
||||
"result": "pass",
|
||||
"evidence": "fresh / ready / failed / stale / missing / broken / empty / click asserted; strace shows exactly one execve (bash) and no clone/fork on the hot path."
|
||||
},
|
||||
{
|
||||
"command": "bash linux_configuration/tests/test_i3blocks_efficiency.sh",
|
||||
"result": "pass",
|
||||
"evidence": "All i3blocks efficiency regression tests passed."
|
||||
},
|
||||
{
|
||||
"command": "~/.config/i3blocks/issue_dashboard.sh (live status.json from the real server)",
|
||||
"result": "pass",
|
||||
"evidence": "'📋 5 · ⚙ 0 · ✓ 0' #FFFFFF while the server ran against Sepci0/kado-no-akari; '📋 dashboard' #6272A4 before it had ever run; BLOCK_BUTTON=1 started the launcher, which opened the (stubbed) browser with --app=http://127.0.0.1:8765/."
|
||||
}
|
||||
],
|
||||
"risks": [
|
||||
"The block appears only after the next i3 reload; nothing was reloaded on the live session.",
|
||||
"A click with issue-dashboard-desktop missing does nothing (errors are silenced so the bar never breaks)."
|
||||
],
|
||||
"rollback": [
|
||||
"git revert this commit and remove ~/.config/i3blocks/issue_dashboard.sh; i3-msg reload.",
|
||||
"Confirm the bar still renders [book_guard] and the other blocks."
|
||||
]
|
||||
}
|
||||
@ -38,9 +38,10 @@ readonly STALE_AFTER_SECONDS=180
|
||||
readonly YELLOW='#F1FA8C'
|
||||
readonly GREEN='#50FA7B'
|
||||
readonly RED='#FF5555'
|
||||
# FontAwesome suitcase (the bar's icon font): an interview project's trip
|
||||
# Luggage emoji (not a Font Awesome private-use glyph, which the i3bar
|
||||
# checks forbid): an interview project's trip
|
||||
# question (milestone trip_ask:*) is still open, pending or missed.
|
||||
readonly SUITCASE=$'\uf0f2'
|
||||
readonly SUITCASE='🧳'
|
||||
|
||||
emit() {
|
||||
# full_text, short_text, color: the three lines i3blocks reads.
|
||||
|
||||
@ -65,7 +65,7 @@ assert_eq '#50FA7B' "$(line 3 "$out")" 'green at daily_minutes'
|
||||
|
||||
printf 'Checking interview milestones (red when missed, suitcase when a trip question is open)...\n'
|
||||
RED='#FF5555'
|
||||
SUITCASE=$'\uf0f2'
|
||||
SUITCASE='🧳'
|
||||
# focus_ms MISSED MINUTES MILESTONE_JSON_ARRAY
|
||||
focus_ms() {
|
||||
jq -nc --argjson x "$1" --argjson m "$2" --argjson ms "$3" \
|
||||
|
||||
Loading…
Reference in New Issue
Block a user