Skip to content

feat: session management, flow name resolution, configurable paths#5

Closed
nullhack wants to merge 3 commits intomainfrom
feat/session-management-squash
Closed

feat: session management, flow name resolution, configurable paths#5
nullhack wants to merge 3 commits intomainfrom
feat/session-management-squash

Conversation

@nullhack
Copy link
Copy Markdown
Owner

@nullhack nullhack commented May 2, 2026

Summary

  • CLI Flow Name Resolution: Resolves short flow names to file paths using configured flows_dir. File paths take priority. --flows-dir global flag overrides pyproject.toml. Exit code 1 with clear error on not-found. (7 BDD scenarios, 5 unit tests, 100% coverage on changed modules)
  • Session Management (Core): session init/show/set-state subcommands, --session flag on transition with auto-write, subflow push/pop stack, state validation on set-state, atomic writes. SessionStore Protocol in domain layer per hexagonal architecture. (8 BDD scenarios, 1 unit test)
  • Configurable Paths: flowr config subcommand showing resolved config keys with sources (default/pyproject.toml/cli), --json output, resolve_config_with_sources() for source tracking. (3 BDD scenarios)

Also includes: spec documentation (domain model, context map, technical design, system, glossary, product definition), 8 interview notes, and 8 post-mortems documenting process failures.

Test plan

  • 189 tests passing, 4 skipped
  • ruff check and ruff format --check pass cleanly
  • All BDD scenarios trace 1-1 to @id tags in feature files
  • Session management extended feature (10 @id) remains in backlog — not part of this PR

nullhack added 3 commits May 2, 2026 08:06
…paths

Three features delivered:

1. CLI Flow Name Resolution — resolves short flow names to file paths
   using the configured flows_dir. File paths take priority. --flows-dir
   global flag overrides pyproject.toml. Clear error on not-found.
   @id: a1b2c3d4 e5f6g7h8 i9j0k1l2 m3n4o5p6 q7r8s9t0 u1v2w3x4 y5z6a7b8

2. Session Management (Core) — session init/show/set-state subcommands,
   --session flag on transition with auto-write, subflow push/pop stack,
   state validation on set-state, atomic writes. SessionStore Protocol
   in domain layer per hexagonal architecture.
   @id: a1b2c3d4 i9j0k1l2 m3n4o5p6 u1v2w3x4 c9d0e1f2 o1p2q3r4 s5t6u7v8 w9x0y1z2

3. Configurable Paths — flowr config subcommand showing resolved config
   keys with sources (default/pyproject.toml/cli), --json output,
   resolve_config_with_sources() for source tracking.
   @id: 2e301322 36d41122 9d4c4973

Also includes: spec documentation (domain model, context map, technical
design, system, glossary, product definition), interview notes, 8
post-mortems documenting process failures and golden rules.
- Add unit tests for session commands, session store, config, and domain edge cases
- Add pragma: no cover for unreachable Protocol stubs, Python version fallbacks,
  and main() dispatch paths covered by integration tests
- Fix lint: line length, unused imports, unused variables, trailing newlines
@nullhack
Copy link
Copy Markdown
Owner Author

nullhack commented May 2, 2026

Superseded by PR #6 which contains all changes from this PR plus the session-management-extended feature.

@nullhack nullhack closed this May 2, 2026
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