Skip to content

feat(dashboard): session workflow dashboard MVP (POS-92) - #8

Open
positivef wants to merge 11 commits into
mainfrom
tool/pos-92-dashboard
Open

feat(dashboard): session workflow dashboard MVP (POS-92)#8
positivef wants to merge 11 commits into
mainfrom
tool/pos-92-dashboard

Conversation

@positivef

Copy link
Copy Markdown
Owner

Summary

  • Read-only, zero-dependency tool that aggregates multi-session data for one project and renders a self-contained static HTML dashboard (no server, no DB, stdlib only).
  • Sources (read-only): .claude/coordination/claude-*.md (slots), ~/.claude/projects/<slug>/*.jsonl (sessions), and git (branch/uncommitted/unpushed/commits-24h/worktrees).
  • Detects 5 multi-session "tangles": slot_collision (red), branch_divergence (warn), duplicate_work (warn), stale_slot (yellow), uncommitted_drift (yellow).
  • Safety: read-only, idempotent, fail-safe per source, output isolated to a gitignored folder. Git output decoded as UTF-8 to avoid Windows cp949 crashes on Korean commit messages.
  • Implements Phase 1 (single-project MVP) of the approved design (Linear POS-92).

Design departures (intentional, documented in README)

  • Slots and sessions are separate panels (coordination claude-N and jsonl sessionId share no key).
  • duplicate_work uses "2+ in-progress slots" heuristic (per-session files_touched deferred to Phase 2).
  • Model embedded in HTML (not fetched) so it opens via file://.

Test Plan

  • pytest tests/test_workflow_*.py -> 30 passed
  • ruff check workflow_dashboard/ -> clean
  • Real smoke run against fieldsync-pro (6 slots, 5 sessions, conflicts detected)
  • Rendered HTML verified in a real browser (Korean + emoji render, live session highlighted, no JS errors)

Refs: Linear POS-92

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c30b89fa3e

ℹ️ 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".


Claude Code replaces each of ``: \\ / _ .`` with ``-``.
"""
return re.sub(r"[:\\/_.]", "-", str(project_path))

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Normalize all non-alphanumeric chars in session slug

slug_for() only replaces :, \, /, _, and ., but Claude session directories are encoded from cwd by replacing every non-alphanumeric character with -. For project paths containing other characters (for example spaces or parentheses), the computed slug does not match the on-disk folder, so resolve_jsonl_dir() misses transcripts and the dashboard can incorrectly show zero sessions/conflicts.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant