alissa-tools-github-devloop 0.8.56__tar.gz → 0.8.58__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. {alissa_tools_github_devloop-0.8.56/src/main/alissa_tools_github_devloop.egg-info → alissa_tools_github_devloop-0.8.58}/PKG-INFO +1 -1
  2. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/src/main/alissa/tools/github/devloop/loop.py +54 -0
  3. alissa_tools_github_devloop-0.8.58/src/main/alissa/tools/github/devloop/version +1 -0
  4. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58/src/main/alissa_tools_github_devloop.egg-info}/PKG-INFO +1 -1
  5. alissa_tools_github_devloop-0.8.56/src/main/alissa/tools/github/devloop/version +0 -1
  6. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/LICENSE +0 -0
  7. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/MANIFEST.in +0 -0
  8. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/NOTICE +0 -0
  9. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/README.md +0 -0
  10. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/requirements.txt +0 -0
  11. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/setup.cfg +0 -0
  12. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/setup.py +0 -0
  13. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/src/main/alissa/tools/github/devloop/__init__.py +0 -0
  14. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/src/main/alissa/tools/github/devloop/__main__.py +0 -0
  15. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/src/main/alissa/tools/github/devloop/alissa.py +0 -0
  16. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/src/main/alissa/tools/github/devloop/alissa_client.py +0 -0
  17. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/src/main/alissa/tools/github/devloop/bows.py +0 -0
  18. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/src/main/alissa/tools/github/devloop/config.py +0 -0
  19. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/src/main/alissa/tools/github/devloop/fleet_vitals.py +0 -0
  20. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/src/main/alissa/tools/github/devloop/ghclient.py +0 -0
  21. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/src/main/alissa/tools/github/devloop/hubs.py +0 -0
  22. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/src/main/alissa/tools/github/devloop/hungtests.py +0 -0
  23. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/src/main/alissa/tools/github/devloop/integration_check.py +0 -0
  24. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/src/main/alissa/tools/github/devloop/janitor.py +0 -0
  25. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/src/main/alissa/tools/github/devloop/loop_events.py +0 -0
  26. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/src/main/alissa/tools/github/devloop/parking.py +0 -0
  27. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/src/main/alissa/tools/github/devloop/proc.py +0 -0
  28. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/src/main/alissa/tools/github/devloop/prompts.py +0 -0
  29. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/src/main/alissa/tools/github/devloop/state.py +0 -0
  30. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/src/main/alissa/tools/github/devloop/version.py +0 -0
  31. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/src/main/alissa/tools/github/devloop/webui/__init__.py +0 -0
  32. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/src/main/alissa/tools/github/devloop/webui/__main__.py +0 -0
  33. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/src/main/alissa/tools/github/devloop/webui/auth.py +0 -0
  34. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/src/main/alissa/tools/github/devloop/webui/page.py +0 -0
  35. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/src/main/alissa/tools/github/devloop/webui/server.py +0 -0
  36. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/src/main/alissa/tools/github/devloop/webui/sources.py +0 -0
  37. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/src/main/alissa/tools/github/devloop/webui/sysinfo.py +0 -0
  38. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/src/main/alissa_tools_github_devloop.egg-info/SOURCES.txt +0 -0
  39. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/src/main/alissa_tools_github_devloop.egg-info/dependency_links.txt +0 -0
  40. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/src/main/alissa_tools_github_devloop.egg-info/entry_points.txt +0 -0
  41. {alissa_tools_github_devloop-0.8.56 → alissa_tools_github_devloop-0.8.58}/src/main/alissa_tools_github_devloop.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alissa-tools-github-devloop
3
- Version: 0.8.56
3
+ Version: 0.8.58
4
4
  Summary: ALISSA-TOOLS-GITHUB-DEVLOOP
5
5
  Home-page: https://alissa.app
6
6
  Author: Fahera
@@ -516,6 +516,44 @@ from .state import State
516
516
 
517
517
  log = logging.getLogger(__name__)
518
518
 
519
+ # The criteria-typing rule (issue #194). orcloop ticks only `evidence`
520
+ # criteria when a PR merges, and the soft validator answers "needs a human"
521
+ # for every `human` one -- so a worker that types a FACT ("PR ready for
522
+ # review", "screenshots committed") as `human` parks its task at
523
+ # pending_validation forever (TASK-183426950, PR #2652: 103 fleet tasks piled
524
+ # up and the backlog brake paused every release). The worker picks the type,
525
+ # so the directive must say how: by who can close the criterion. The
526
+ # operator-gate list stays out of the criteria because orcloop already
527
+ # harvests it from the PR body into the origin task's "Needs a look"
528
+ # checklist; copied in, it would turn every unverifiable item into a human
529
+ # criterion again. The legacy type words are deliberately never written here
530
+ # (a test pins their absence from every directive): naming them, even to
531
+ # forbid them, is how they get copied.
532
+ _CRITERIA_RULE = (
533
+ "Type every validation criterion on your implementation task by WHO CAN "
534
+ "CLOSE IT, writing the type as exactly one of `evidence`, `check` or "
535
+ "`human`: `evidence` is the default — it closes from what the PR, the "
536
+ "delivery note, a merged commit, a test run or a committed file shows "
537
+ "(orcloop ticks these on merge); `check`, with a `source`, when "
538
+ "a machine signal names it (`ci:<owner>/<repo>[#<check>]` for \"CI "
539
+ "green\"); `human` ONLY for a person's judgment (taste, a live phone "
540
+ "check, a pilot user, a decision) — and then say so in the criterion's "
541
+ "text. Facts are never `human`: \"PR ready / review requested / approved "
542
+ "/ merged\", \"tests X pass\", \"screenshots at <path> committed\", "
543
+ "\"doc section added\", \"delivery note registered\" are all "
544
+ "`evidence`. Never copy the PR body's \"Not verified — operator's gate\" "
545
+ "list into task criteria: orcloop harvests it into a \"Needs a look\" "
546
+ "checklist on the origin task by itself."
547
+ )
548
+
549
+ # The adopt half: a resumed or fix-round session inherits a task some other
550
+ # session typed, possibly before this rule existed.
551
+ _CRITERIA_ADOPT = (
552
+ " On a task you ADOPT, retype any criterion that breaks this rule (a fact "
553
+ "typed `human` becomes `evidence`), and type any criterion you add the "
554
+ "same way."
555
+ )
556
+
519
557
  # The origin-task instruction is split in two because the downstream rule is
520
558
  # the same either way -- only the starting point differs: a present ref is
521
559
  # authoritative; an absent one (spawn_anyway / warn_and_spawn) makes locating
@@ -525,6 +563,8 @@ _TASK_WITH_ORIGIN = (
525
563
  "implementation task DOWNSTREAM of it (create_downstream_task), and keep "
526
564
  "its status honest: in_progress while you work, pending_validation at "
527
565
  "handoff."
566
+ + " "
567
+ + _CRITERIA_RULE
528
568
  )
529
569
 
530
570
  _TASK_WITHOUT_ORIGIN = (
@@ -532,6 +572,8 @@ _TASK_WITHOUT_ORIGIN = (
532
572
  "behind this issue, or create one, then create your implementation task "
533
573
  "DOWNSTREAM of it before writing code, and keep its status honest: "
534
574
  "in_progress while you work, pending_validation at handoff."
575
+ + " "
576
+ + _CRITERIA_RULE
535
577
  )
536
578
 
537
579
  # The resume counterparts. A resumed attempt inherits a PR the dead session
@@ -547,6 +589,9 @@ _RESUME_TASK_WITH_ORIGIN = (
547
589
  "in_progress while you work, pending_validation at handoff. Only if the "
548
590
  "PR body names none, create your implementation task DOWNSTREAM of the "
549
591
  "origin (create_downstream_task) before writing code."
592
+ + " "
593
+ + _CRITERIA_RULE
594
+ + _CRITERIA_ADOPT
550
595
  )
551
596
 
552
597
  _RESUME_TASK_WITHOUT_ORIGIN = (
@@ -555,6 +600,9 @@ _RESUME_TASK_WITHOUT_ORIGIN = (
555
600
  "in_progress while you work, pending_validation at handoff); otherwise "
556
601
  "locate the origin task behind this issue, or create one, and create "
557
602
  "your implementation task DOWNSTREAM of it before writing code."
603
+ + " "
604
+ + _CRITERIA_RULE
605
+ + _CRITERIA_ADOPT
558
606
  )
559
607
 
560
608
  # The delivery note (issue #63). A worker's highest-value output is not the
@@ -1514,6 +1562,9 @@ FIX_DIRECTIVE = (
1514
1562
  "keep its status honest — in_progress while you work, pending_validation "
1515
1563
  "at handoff. If a ref is missing from the PR body, restoring both is part "
1516
1564
  "of your job: the PR body is the canonical cross-actor record. "
1565
+ + _CRITERIA_RULE
1566
+ + _CRITERIA_ADOPT
1567
+ + " "
1517
1568
  "Golden path: your cwd is the repo's worktree hub ROOT and the PR's head "
1518
1569
  "branch `{head_ref}` already exists — re-attach its worktree with `git "
1519
1570
  "worktree add {worktree_dir} {head_ref}` if it is missing (the directory "
@@ -1567,6 +1618,9 @@ FIX_RESUME_DIRECTIVE = (
1567
1618
  "in_progress while you work, pending_validation at handoff. If a ref is "
1568
1619
  "missing from the PR body, restoring both is part of your job: the PR "
1569
1620
  "body is the canonical cross-actor record. "
1621
+ + _CRITERIA_RULE
1622
+ + _CRITERIA_ADOPT
1623
+ + " "
1570
1624
  "FIRST hydrate the context you did not live through: read the PR (body, "
1571
1625
  "commits, and every review thread) and the issue behind it, to see how "
1572
1626
  "far the dead session got. Golden path: your cwd is the repo's worktree "
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alissa-tools-github-devloop
3
- Version: 0.8.56
3
+ Version: 0.8.58
4
4
  Summary: ALISSA-TOOLS-GITHUB-DEVLOOP
5
5
  Home-page: https://alissa.app
6
6
  Author: Fahera