Skip to content

Releases: como-technologies/riff

v4.8.0

Choose a tag to compare

@n8behavior n8behavior released this 03 Nov 17:37
78c94e7

Level: minor, 4.8.0.

Waves in this release: Wave 46: fewer GitHub calls.

Wave 46: fewer GitHub calls:

  • #1572: A worker writes its tests as a plain sentence, and riff pr open checks the body first (#1574).
  • #1557: When the GitHub limit runs out, riff waits for the reset and keeps the result of a verify (#1573).
  • #1555: The release commands try a call of GitHub again on a 502, 503 or 504 (#1571).
  • #1550: The watches of a repository tell a fault of the forge one time, with one dot (#1570).
  • #1563: The how-to "Find why the list has no items" reads the GraphQL limit with GraphQL (#1569).
  • #1549: The daemon counts its calls of gh and looks less often at an idle wave (#1565).
  • #1546: Each text of riff names the instructions of the riff tools, and no text names a skill (#1561).
  • #1548: Pull::settled counts only the newest run of each check (#1560).
  • #1538: A commit of main that breaks again after a rerun that passed tells the lead (#1559).
  • #1556: riff wave list names the error of gh when gh fails (#1558).

What's Changed

Changes

  • Each text of riff names the instructions of the riff tools, and no text names a skill by @n8behavior in #1561
  • Pull::settled counts only the newest run of each check by @n8behavior in #1560
  • A commit of main that breaks again after a rerun that passed tells the lead by @n8behavior in #1559
  • riff wave list names the error of gh when gh fails by @n8behavior in #1558
  • The daemon counts its calls of gh and looks less often at an idle wave by @n8behavior in #1565
  • The how-to "Find why the list has no items" reads the GraphQL limit with GraphQL by @n8behavior in #1569
  • The release commands try a call of GitHub again on a 502, 503 or 504 by @n8behavior in #1571
  • The watches of a repository tell a fault of the forge one time, with one dot by @n8behavior in #1570
  • A worker writes its tests as a plain sentence, and riff pr open checks the body first by @n8behavior in #1574
  • When the GitHub limit runs out, riff waits for the reset and keeps the result of a verify by @n8behavior in #1573

Full Changelog: v4.7.0...v4.8.0

Images

  • ghcr.io/como-technologies/riff-base@sha256:2799cd2e7c6e23ab4b9b576ad1331e7315044378a490317624c93d3d984ad5b1
  • ghcr.io/como-technologies/riff-rust@sha256:eb0c0920825ef44e72e4183bb8a4a93a5add5a09422a4f3e73ec61cde19ccfe1

v4.7.0

Choose a tag to compare

@n8behavior n8behavior released this 03 Nov 07:26
3722332

Level: minor, 4.7.0.

Waves in this release: Wave 45: the lead hears it right.

Wave 45: the lead hears it right:

  • #1439: The wave of each host sends the lead each notice about the repository one time (#1547).
  • #1540: The look of the wave counts only the newest run of each check (#1545).
  • #1537: A worker and a verifier add to an issue only with a comment: only the lead edits its body (#1544).
  • #1539: The requirement about the git config of a test names both helpers (#1541).
  • #1433: A verified pull request that waits for a review, or for the approval of a run of a fork, tells the lead (#1536).
  • #1447: hygiene pr fails a trailer line that the merge wraps (#1535).
  • #1362: riff verify from a terminal wakes the lead of the repository of the pull request (#1534).
  • #1526: A resume of the whole riff tells the lead of a repository that has a pause of its own (#1533).
  • #1524: A change of the owner role posts one line in riff chat (#1531).
  • #1508: The gpgsign tests of the sweep and the WIP commit fail with no fix inside a riff container (#1530).
  • #1511: The look of each host of a wave sends the lead each message about main one time (#1529).
  • #1512: The merge-queue requirements say that they supersede the rebase rule of the wave in part (#1528).
  • #1503: The rustdoc of daemon.rs keeps the lead-in of the two steps of a new riff with its list (#1527).

What's Changed

Changes

  • The rustdoc of daemon.rs keeps the lead-in of the two steps of a new riff with its list by @n8behavior in #1527
  • The merge-queue requirements say that they supersede the rebase rule of the wave in part by @n8behavior in #1528
  • The look of each host of a wave sends the lead each message about main one time by @n8behavior in #1529
  • The gpgsign tests of the sweep and the WIP commit fail with no fix inside a riff container by @n8behavior in #1530
  • A change of the owner role posts one line in riff chat by @n8behavior in #1531
  • riff verify from a terminal wakes the lead of the repository of the pull request by @n8behavior in #1534
  • A resume of the whole riff tells the lead of a repository that has a pause of its own by @n8behavior in #1533
  • A verified pull request that waits for a review, or for the approval of a run of a fork, tells the lead by @n8behavior in #1536
  • hygiene pr fails a trailer line that the merge wraps by @n8behavior in #1535
  • The requirement about the git config of a test names both helpers by @n8behavior in #1541
  • A worker and a verifier add to an issue only with a comment: only the lead edits its body by @n8behavior in #1544
  • The look of the wave counts only the newest run of each check by @n8behavior in #1545
  • The wave of each host sends the lead each notice about the repository one time by @n8behavior in #1547

Full Changelog: v4.6.0...v4.7.0

Images

  • ghcr.io/como-technologies/riff-base@sha256:2799cd2e7c6e23ab4b9b576ad1331e7315044378a490317624c93d3d984ad5b1
  • ghcr.io/como-technologies/riff-rust@sha256:eb0c0920825ef44e72e4183bb8a4a93a5add5a09422a4f3e73ec61cde19ccfe1

v4.6.0

Choose a tag to compare

@n8behavior n8behavior released this 26 Oct 00:23
6501ddb

Level: minor, 4.6.0.

Waves in this release: Wave 44: a smoother wave.

Wave 44: a smoother wave:

  • #1514: After a rollback of riff-server to the release before, a line of riff in riff chat still posts (#1515).
  • #1509: An unknown result of riff release check tells the other leads that the checks could not all run (#1513).
  • #1480: riff who --long shows the image of each wave and of each session container (#1510).
  • #1467: A wave on more hosts sends each message about a pull request one time (#1507).
  • #1497: A line that riff writes in riff chat is no approval of the owner: riff release approve skips it (#1506).
  • #1479: A merge queue on main: the wave leaves a queued pull request alone (#1505).
  • #1494: riff release cut asks the owner for nothing; the only ask is the line that the deploy waits (#1504).
  • #1445: The commits that riff makes for itself carry no signature (#1502).
  • #1482: The daemon reads [release] from the merged riff.toml, not from the working tree of the main clone (#1501).
  • #1478: The book says the release gate of riff wave end in one place (#1500).
  • #1483: The diagram of Run the wave sends an UNKNOWN that turns MERGEABLE to the verify (#1499).
  • #1491: The book says that riff starts the lead again on the new riff after a daemon starts again (#1498).

What's Changed

Changes

  • The diagram of Run the wave sends an UNKNOWN that turns MERGEABLE to the verify by @n8behavior in #1499
  • The book says the release gate of riff wave end in one place by @n8behavior in #1500
  • The book says that riff starts the lead again on the new riff after a daemon starts again by @n8behavior in #1498
  • The daemon reads [release] from the merged riff.toml, not from the working tree of the main clone by @n8behavior in #1501
  • The commits that riff makes for itself carry no signature by @n8behavior in #1502
  • A wave on more hosts sends each message about a pull request one time by @n8behavior in #1507
  • A merge queue on main: the wave leaves a queued pull request alone by @n8behavior in #1505
  • riff release cut asks the owner for nothing; the only ask is the line that the deploy waits by @n8behavior in #1504
  • An unknown result of riff release check tells the other leads that the checks could not all run by @n8behavior in #1513
  • A line that riff writes in riff chat is no approval of the owner: riff release approve skips it by @n8behavior in #1506
  • riff who --long shows the image of each wave and of each session container by @n8behavior in #1510
  • After a rollback of riff-server to the release before, a line of riff in riff chat still posts by @n8behavior in #1515

Full Changelog: v4.5.0...v4.6.0

Images

  • ghcr.io/como-technologies/riff-base@sha256:2799cd2e7c6e23ab4b9b576ad1331e7315044378a490317624c93d3d984ad5b1
  • ghcr.io/como-technologies/riff-rust@sha256:eb0c0920825ef44e72e4183bb8a4a93a5add5a09422a4f3e73ec61cde19ccfe1

v4.5.0

Choose a tag to compare

@n8behavior n8behavior released this 25 Oct 22:03
694e4e4

Level: minor, 4.5.0.

Waves in this release: Wave 43: a lead takes each update by itself.

Wave 43: a lead takes each update by itself:

  • #1486: After an update, the daemon starts an idle lead again on the new riff and resumes it (#1490).

What's Changed

Changes

  • After an update, the daemon starts an idle lead again on the new riff and resumes it by @n8behavior in #1490

Full Changelog: v4.4.0...v4.5.0

Images

  • ghcr.io/como-technologies/riff-base@sha256:2799cd2e7c6e23ab4b9b576ad1331e7315044378a490317624c93d3d984ad5b1
  • ghcr.io/como-technologies/riff-rust@sha256:eb0c0920825ef44e72e4183bb8a4a93a5add5a09422a4f3e73ec61cde19ccfe1

v4.4.0

Choose a tag to compare

@n8behavior n8behavior released this 25 Oct 17:36
945ebc8

Level: minor, 4.4.0.

Waves in this release: Wave 42: the contract with a repository.

Wave 42: the contract with a repository:

  • #1464: The wave starts no verify of a pull request whose mergeable is UNKNOWN (#1481).
  • #1474: A signed test server ends its sign-ins with it, so an open server on a reused port gets no old sign-in (#1477).
  • #1472: The help of riff wave end names [release] in riff.toml, not deploy/release-check.sh (#1476).
  • #1453: Each lead of the riff hears each step of a release, and a lead in a critical place can hold the deploy (#1475).
  • #1465: riff pr open --help says that the Milestone: trailer and the title rule hold only with the rules of riff (#1473).
  • #1448: The daemon checks the network of each session that it takes up: it stops a worker with none and tells the person of a lead (#1471).
  • #1466: wave_list has its rustdoc again, and wave_run_in_container has only its own (#1470).
  • #1422: A public base image of riff, riff-base, and riff-rust: each project builds its image FROM one and adds its toolchain (#1469).
  • #1426: With no CI, the full check is riff/verify, not a check named Gate that never runs (#1468).
  • #1441: A verify with no PASS or FAIL leaves an ends record, and riff daemon events works in the lead container (#1463).
  • #1423: The env, volumes and caches of a session come from riff.toml, not from Rust settings that riff sets (#1462).
  • #1438: The verify checks that a host can pull a new session image, and the daemon shows a pull that failed (#1461).
  • #1429: The names riff uses on the forge are in the book, riff init counts the issues with no Done when, and the dead sccache install goes (#1460).
  • #1427: A failed check that is not a run of GitHub Actions starts no fix session: the lead gets its link (#1459).
  • #1425: The release cycle, riff build and the real-session test are only for a repository with [release] in riff.toml (#1458).
  • #1430: riff wave run --host makes the main clone on a host that does not serve the repository (#1457).
  • #1428: riff pr open keeps only the rules that riff reads in a repository that is not riff (#1456).
  • #1431: riff init in a session container skips the checks of the machine and runs the checks of the repository (#1455).
  • #1424: The package sources that auto mode trusts come from riff.toml, not only crates.io (#1454).

What's Changed

Changes

  • The package sources that auto mode trusts come from riff.toml, not only crates.io by @n8behavior in #1454
  • riff init in a session container skips the checks of the machine and runs the checks of the repository by @n8behavior in #1455
  • riff wave run --host makes the main clone on a host that does not serve the repository by @n8behavior in #1457
  • A failed check that is not a run of GitHub Actions starts no fix session: the lead gets its link by @n8behavior in #1459
  • riff pr open keeps only the rules that riff reads in a repository that is not riff by @n8behavior in #1456
  • wave_list has its rustdoc again, and wave_run_in_container has only its own by @n8behavior in #1470
  • A verify with no PASS or FAIL leaves an ends record, and riff daemon events works in the lead container by @n8behavior in #1463
  • The names riff uses on the forge are in the book, riff init counts the issues with no Done when, and the dead sccache install goes by @n8behavior in #1460
  • The env, volumes and caches of a session come from riff.toml, not from Rust settings that riff sets by @n8behavior in #1462
  • riff pr open --help says that the Milestone: trailer and the title rule hold only with the rules of riff by @n8behavior in #1473
  • The daemon checks the network of each session that it takes up: it stops a worker with none and tells the person of a lead by @n8behavior in #1471
  • The release cycle, riff build and the real-session test are only for a repository with [release] in riff.toml by @n8behavior in #1458
  • The verify checks that a host can pull a new session image, and the daemon shows a pull that failed by @n8behavior in #1461
  • The help of riff wave end names [release] in riff.toml, not deploy/release-check.sh by @n8behavior in #1476
  • Each lead of the riff hears each step of a release, and a lead in a critical place can hold the deploy by @n8behavior in #1475
  • A signed test server ends its sign-ins with it, so an open server on a reused port gets no old sign-in by @n8behavior in #1477
  • With no CI, the full check is riff/verify, not a check named Gate that never runs by @n8behavior in #1468
  • A public base image of riff, riff-base, and riff-rust: each project builds its image FROM one and adds its toolchain by @n8behavior in #1469
  • The wave starts no verify of a pull request whose mergeable is UNKNOWN by @n8behavior in #1481

Full Changelog: v4.3.0...v4.4.0

Images

  • ghcr.io/como-technologies/riff-base@sha256:2799cd2e7c6e23ab4b9b576ad1331e7315044378a490317624c93d3d984ad5b1
  • ghcr.io/como-technologies/riff-rust@sha256:eb0c0920825ef44e72e4183bb8a4a93a5add5a09422a4f3e73ec61cde19ccfe1

v4.3.0

Choose a tag to compare

@n8behavior n8behavior released this 25 Oct 05:39
f064c1a

Level: minor, 4.3.0. riff gets new behavior that a person sees: each release step wakes the lead at its end, riff init does the setup steps and pulls riff.toml by itself, a repository needs no CLAUDE.md, a restart of the daemon keeps the network of each new session, and the support of older releases is gone. A machine of the release before updates with no step of a person, but each lead that runs at the update loses its network once.

Waves in this release: Wave 41: only the current release.

Wave 41: only the current release:

  • #1444: The commit rule takes a Co-authored-by block after Issue and Milestone (#1446).
  • #1440: The requirement of the removed bridge moves to the history page (#1442).
  • #1412: Each riff command that starts an async operation registers a watch, and the daemon wakes the lead at its end (#1437).
  • #1418: riff init checks no CLAUDE.md, and the start texts send a session to the rules of the repository for agents when it has them (#1436).
  • #1399: Remove each part that supports an older release (#1435).
  • #1416: riff init shows step lines before the question, names each failed check at the end, and pulls riff.toml into the clone (#1434).
  • #1402: requirements.md holds only the rules of today: each requirement superseded in full moves to a history page (#1432).
  • #1417: riff reads only the newest run of each check, so an old failed run does not stop a verify pass (#1420).
  • #1415: A restart of the daemon leaves the network of each session: podman run starts in a scope of its own (#1419).
  • #692: The link test counts an accepted connection with no read (#1348). Thanks to @Nitjsefnie for #1348.

What's Changed

Changes

  • A restart of the daemon leaves the network of each session: podman run starts in a scope of its own by @n8behavior in #1419
  • riff reads only the newest run of each check, so an old failed run does not stop a verify pass by @n8behavior in #1420
  • riff init shows step lines before the question, names each failed check at the end, and pulls riff.toml into the clone by @n8behavior in #1434
  • Each riff command that starts an async operation registers a watch, and the daemon wakes the lead at its end by @n8behavior in #1437
  • Remove each part that supports an older release by @n8behavior in #1435
  • requirements.md holds only the rules of today: each requirement superseded in full moves to a history page by @n8behavior in #1432
  • The requirement of the removed bridge moves to the history page by @n8behavior in #1442
  • The link test counts an accepted connection with no read by @Nitjsefnie in #1348
  • The commit rule takes a Co-authored-by block after Issue and Milestone by @n8behavior in #1446
  • riff init checks no CLAUDE.md, and the start texts send a session to the rules of the repository for agents when it has them by @n8behavior in #1436

New Contributors

Full Changelog: v4.2.0...v4.3.0

v4.2.0

Choose a tag to compare

@n8behavior n8behavior released this 25 Oct 02:14
7985b9a

Level: minor, 4.2.0. riff gets new steps for a person: riff init sets up a new repository, @lead:REPO in the chat, any CI check name and any default branch. A machine of the release before updates with no step of a person.

Waves in this release: Wave 40: riff on other projects.

Wave 40: riff on other projects:

  • #1401: A failed git call stops the command, and riff does not register a session at a place that it made up (#1409).
  • #1354: The start texts name no convention of the riff repository: a session gets its rules from the CLAUDE.md of its repository (#1407).
  • #1404: The wave reads the default branch at each look, and no file holds it (#1406).
  • #1398: Texts, rustdoc and the book name no version of riff, and a check refuses a version name (#1403).
  • #1373: riff init sets up a new repository for riff: riff.toml, auto-merge, the ruleset and the milestones (#1397).
  • #1393: The watch of main reads the full check, and a skipped required check counts as a pass (#1396).
  • #1391: The wave starts no build of an issue with no Done when line, and riff wave move warns (#1395).
  • #1390: A running background task holds a session of a wave for the quiet limit, not the grace of 60 s (#1394).
  • #698: riff verify pass and the wave wait for the required checks of the default branch (#1389).
  • #1352: riff reads the default branch of the repository, not main: the verify diff, the rebase and the look (#1388).
  • #1372: riff lead start in a repository with no riff.toml names the fix and starts nothing (#1387).
  • #1383: The book has one how-to for riff members, in start-a-team-riff.md (#1386).
  • #1353: riff init checks the setup of GitHub, riff wave make makes Backlog, and a how-to adds another repository (#1382).
  • #1350: A new lead takes the read cursors of the lead before it, and a joining session starts at the newest message (#1381).
  • #279: The wave acts for a pull request that cannot merge by itself (#1380).
  • #1338: The lead container reads members, audit, who, whoami and session why, and runs an item, through the socket (#1378).
  • #1368: The chat names one lead of a user with @lead:REPO, and a lead line shows its repository (#1377).
  • #1351: The daemon runs the look of each wave: main breaks, a pull request stops (#1376).
  • #1365: The daemon shows the real-session test that runs, and busy counts it (#1375).
  • #1241: In the lead container, riff is on the PATH, so ! riff works in the terminal (#1374).
  • #1367: The wave fetches refs/pull/N/head so the verify of a pull request from a fork has its head commit (#1371).
  • #1344: The sweep pushes the commits of another local branch to riff-kept/ITEM-ID8-BRANCH and removes the folder (#1370).
  • #1363: The book drops Remote Control: the lead has none, and it starts with riff lead start (#1369).

What's Changed

Changes

  • The book drops Remote Control: the lead has none, and it starts with riff lead start by @n8behavior in #1369
  • The sweep pushes the commits of another local branch to riff-kept/ITEM-ID8-BRANCH and removes the folder by @n8behavior in #1370
  • The wave fetches refs/pull/N/head so the verify of a pull request from a fork has its head commit by @n8behavior in #1371
  • The daemon shows the real-session test that runs, and busy counts it by @n8behavior in #1375
  • The chat names one lead of a user with @lead:REPO, and a lead line shows its repository by @n8behavior in #1377
  • The lead container reads members, audit, who, whoami and session why, and runs an item, through the socket by @n8behavior in #1378
  • The daemon runs the look of each wave: main breaks, a pull request stops by @n8behavior in #1376
  • A new lead takes the read cursors of the lead before it, and a joining session starts at the newest message by @n8behavior in #1381
  • riff init checks the setup of GitHub, riff wave make makes Backlog, and a how-to adds another repository by @n8behavior in #1382
  • In the lead container, riff is on the PATH, so ! riff works in the terminal by @n8behavior in #1374
  • The book has one how-to for riff members, in start-a-team-riff.md by @n8behavior in #1386
  • The wave acts for a pull request that cannot merge by itself by @n8behavior in #1380
  • riff lead start in a repository with no riff.toml names the fix and starts nothing by @n8behavior in #1387
  • riff verify pass and the wave wait for the required checks of the default branch by @n8behavior in #1389
  • A running background task holds a session of a wave for the quiet limit, not the grace of 60 s by @n8behavior in #1394
  • riff init sets up a new repository for riff: riff.toml, auto-merge, the ruleset and the milestones by @n8behavior in #1397
  • The watch of main reads the full check, and a skipped required check counts as a pass by @n8behavior in #1396
  • The wave starts no build of an issue with no Done when line, and riff wave move warns by @n8behavior in #1395
  • riff reads the default branch of the repository, not main: the verify diff, the rebase and the look by @n8behavior in #1388
  • Texts, rustdoc and the book name no version of riff, and a check refuses a version name by @n8behavior in #1403
  • The start texts name no convention of the riff repository: a session gets its rules from the CLAUDE.md of its repository by @n8behavior in #1407
  • The wave reads the default branch at each look, and no file holds it by @n8behavior in #1406
  • A failed git call stops the command, and riff does not register a session at a place that it made up by @n8behavior in #1409

Full Changelog: v4.1.1...v4.2.0

v4.1.1

Choose a tag to compare

@n8behavior n8behavior released this 24 Oct 18:32
90e36bf

Level: patch, 4.1.1. a fix only: the wave of 4.1.0 cannot look at the pull requests, so no wave starts a session (#1355)

Waves in this release: Wave 40: riff on other projects.

Wave 40: riff on other projects:

  • #1355: The wave reads the open pull requests with no commits, so GitHub accepts the query (#1359).

What's Changed

Changes

  • The wave reads the open pull requests with no commits, so GitHub accepts the query by @n8behavior in #1359

Full Changelog: v4.1.0...v4.1.1

v4.1.0

Choose a tag to compare

@n8behavior n8behavior released this 24 Oct 06:58
14acd67

Level: minor, 4.1.0.

Waves in this release: Wave 39: the release from the lead container, effort, and wave bugs.

Wave 39: the release from the lead container, effort, and wave bugs:

  • #1152: A wave session has 60 s after its result, the daemon saves a build with no push, sweep --remove (#1337).
  • #1157: A new verify request after a verify FAIL makes the wave start a verify, not a build (#1336).
  • #1153: The integration tests use a riff-server with a sign-in (#1335).
  • #638: The daemon starts the lead, work items and verifies at effort xhigh by default (#1333).
  • #1299: The lead starts the watch again when the Monitor ends, and a read leaves no wake for a new watch (#1332).
  • #1324: The lead does not keep the daemon of its host on an old riff (#1331).
  • #1320: A selector with person=true wakes the person and no agent session (#1330).
  • #1319: riff release cut, publish and approve reach riff-server through the daemon socket in the lead container (#1329).
  • #1162: The daemon sends no verify request for a WIP head (#1328).
  • #1186: Update the GitHub Actions to Node 24 versions and add dependabot for actions (#1327).
  • #1323: Upgrade crypto-bigint to 0.7.6 for RUSTSEC-2026-0387 (#1326).
  • #1178: A chat line with no target wakes the lead of the sender (#1325).

What's Changed

Changes

  • Update the GitHub Actions to Node 24 versions and add dependabot for actions by @n8behavior in #1327
  • A chat line with no target wakes the lead of the sender by @n8behavior in #1325
  • Upgrade crypto-bigint to 0.7.6 for RUSTSEC-2026-0387 by @n8behavior in #1326
  • The daemon sends no verify request for a WIP head by @n8behavior in #1328
  • riff release cut, publish and approve reach riff-server through the daemon socket in the lead container by @n8behavior in #1329
  • The lead does not keep the daemon of its host on an old riff by @n8behavior in #1331
  • A selector with person=true wakes the person and no agent session by @n8behavior in #1330
  • A new verify request after a verify FAIL makes the wave start a verify, not a build by @n8behavior in #1336
  • The lead starts the watch again when the Monitor ends, and a read leaves no wake for a new watch by @n8behavior in #1332
  • The daemon starts the lead, work items and verifies at effort xhigh by default by @n8behavior in #1333
  • A wave session has 60 s after its result, the daemon saves a build with no push, sweep --remove by @n8behavior in #1337
  • The integration tests use a riff-server with a sign-in by @n8behavior in #1335

Full Changelog: v4.0.4...v4.1.0

v4.0.4

Choose a tag to compare

@n8behavior n8behavior released this 24 Oct 03:38
932e83b

Level: patch, 4.0.4.

Waves in this release: Wave 38: the lead role.

Wave 38: the lead role:

  • #1235: The sweep pushes the work of a kept folder to riff-kept/ITEM-ID8 and removes it (#1316).
  • #1305: Only riff lead start or the person sets the lead (#1308).

What's Changed

Changes

  • Only riff lead start or the person sets the lead by @n8behavior in #1308
  • The sweep pushes the work of a kept folder to riff-kept/ITEM-ID8 and removes it by @n8behavior in #1316

Full Changelog: v4.0.3...v4.0.4