mikronova/funnel-core
Commits
d3a0f062122cMerge v2/n7-a28-small-2026-10-25: every repository = names this repository's real home, with a guard test (A28 L17)09b0ec276b6eGREEN: every repository = names this repository's home (A28 L17)f8649b91a384RED: every Cargo.toml names this repository's real home and none names the old forge (A28 L17)fcc1117423efpublish prep: repository points at the code's real home (codeberg.org/mikronova/funnel-core)b014814f7424publish prep: `me` from the environment, names out of the fixtures, dev notes out of the package9b493790a6d1deps: petgraph 0.8703f23b218c8funnel-core 0.1.4: drifted — the published 0.1.3 has no Event::PlanComponentWired06f603ce89f7Commit the formatting rustfmt.toml already declared, so the tree stops re-dirtying7bb303945c76One rustfmt.toml per repo, identical, so fmt stops crossing repo borders142c02046c57guard: adopt the silenced-test tripwire (funnel-core, GREEN 2026-08-01)831d6234815cfunnel-core: make Event an open enum so a new variant stops breaking consumers9318ee9caac0funnel-core: wire the Plan-DAG to the Component-DAG (P1 seam)c0b94b752704bench: unbreak the bencher build, and fill the README's empty bench table28bf3c07d93dfunnel-core: retain RunRecorded as run history + enforce funnel-wide node-id uniqueness36d2cb413715funnel-core test: cover RunRecorded apply arm + replay-determinism propertyab95cab5f2b7funnel-core test: lock DagStatus/EdgeKind viz wire tokens + as_str↔serde agreementae00abbf4180chore(release): bump versions for crates.io promotea4d02e3cbc2frelease: add missing readme metadata to publishable crates (crate_metadata gate)bbbf8804ef38funnel-core docs: bottleneck ranking (guide 5a + design note 3 + SVG + for-idiots)154de91e91f5funnel-core: PlanDag::bottlenecks() — rank nodes by downstream reach (which node unblocks the most work)fd29dddc1e56funnel-core docs: DagGrowth::extend streaming growth (guide + temporal seam)151e1cff37d1funnel-core bench: plan_dag_growth_stream — incremental vs batch live-pane arme67bc07baca0funnel-core: DagGrowth::extend — incremental per-tick growth stream5365f7213f2ffunnel-core: DagGrowth::from_events — birth-stamped Plan-DAG growth timelineb217a0892319funnel-core: PlanDag::diff() — Plan-DAG revision diff (PlanDiff)f4b56fc7137ffunnel-core: PlanDag::slack()/critical_nodes() — critical-path tension (CPM float)e668e739f876funnel-core: PlanDag::layers()/width() — layered layout + peak parallelism0dd7903057f8funnel-core: PlanDag::critical_path_deps() — Dep-only critical-path twin270a5532d244funnel-core: apply rejects cycle-closing edges (DAG invariant)0516e4d9a513funnel-core 0.1.2: FunnelMode vocabulary + Plan-DAG critical path/depths771beb19ce82funnel-core/bench: depend on nornir with default-features=false007c199e576dfunnel-core: heavy bench harness for the board/query projection hot paths060d4a42c5acfunnel-core: single-source .nornir docs + public-API integration tests746dd4a53d94funnel-core 0.1.1: publish plan_dag + kanban-card events/state (used by nornir viz)2613ea87f3d8plan_dag: funnel Plan-DAG projection (nodes+edges+metadata+topo)cce0342239e0feat(funnel-core): Proposed lane, card assignee, CardAssigned/CardStateChanged/IdeaModeSet eventsd9d5188becb5Initial commit: funnel-core, the pure workflow-DAG core extracted from nornir