praca 0.1.3

The praça session-orchestration substrate for the mado/tear terminal — automation-first: sessions are auto-named + auto-bound to projects, cd auto-attaches the project's session, the picker is the fallback. Pure typed logic: project-root detection, frecency ranking, project↔session bindings, a fuzzy/frecency session index, and the cd-driven attach decision engine. No I/O, no daemon wiring, all time injected.
docs.rs failed to build praca-0.1.3
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.

praca — the praça session-orchestration substrate for the mado/tear terminal.

Automation-first. Sessions are auto-named (deterministic glyph + word from the project path, via ishou_tokens::FleetSessionNames) and auto-bound to projects; cd auto-attaches the project's session; the picker is the fallback for everything automation doesn't cover.

A praça (Portuguese: a town square) is where the sessions of a workspace gather — every project root has its named seat, and walking into a project (cd) seats you at it automatically.

The pieces

  • [project] — walk UP from a cwd to the nearest project root (.git, else Cargo.toml/flake.nix/package.json/go.mod/ pyproject.toml). Pure, mock-testable.
  • [record] — [SessionRecord]: the persisted, ranked, searchable unit per session (id, name seed+style, project root, cwd, frecency counters, tags, state).
  • [frecency] — recency-weighted frequency [frecency::score].
  • [binding] — [ProjectBinding]: the persisted project→session map that powers cd-driven auto-attach.
  • [index] — [SessionIndex]: fuzzy + frecency search over every session (the picker), plus by-project lookup.
  • [attach] — the automation core: [attach::decide] turns a cd into a typed [AttachDecision] under an [AttachPolicy].

This phase is pure

No mado/tear-daemon wiring lives here yet — that is a later phase. Every function is deterministic: time is injected as u64 unix-seconds, never read from the clock; the filesystem is touched only by [project::project_root]'s real-fs marker probe (and even that has a pure [project::project_root_with] sibling for tests). The [Praca] facade is the surface mado/tear will drive later.