alissa-tools-github-revloop 0.31.4__tar.gz → 0.31.5__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 (38) hide show
  1. {alissa_tools_github_revloop-0.31.4/src/main/alissa_tools_github_revloop.egg-info → alissa_tools_github_revloop-0.31.5}/PKG-INFO +1 -1
  2. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/src/main/alissa/tools/github/revloop/alissa.py +14 -9
  3. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/src/main/alissa/tools/github/revloop/loop.py +17 -1
  4. alissa_tools_github_revloop-0.31.5/src/main/alissa/tools/github/revloop/version +1 -0
  5. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5/src/main/alissa_tools_github_revloop.egg-info}/PKG-INFO +1 -1
  6. alissa_tools_github_revloop-0.31.4/src/main/alissa/tools/github/revloop/version +0 -1
  7. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/LICENSE +0 -0
  8. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/MANIFEST.in +0 -0
  9. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/NOTICE +0 -0
  10. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/README.md +0 -0
  11. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/requirements.txt +0 -0
  12. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/setup.cfg +0 -0
  13. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/setup.py +0 -0
  14. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/src/main/alissa/tools/github/revloop/__init__.py +0 -0
  15. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/src/main/alissa/tools/github/revloop/__main__.py +0 -0
  16. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/src/main/alissa/tools/github/revloop/alissa_client.py +0 -0
  17. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/src/main/alissa/tools/github/revloop/bows.py +0 -0
  18. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/src/main/alissa/tools/github/revloop/config.py +0 -0
  19. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/src/main/alissa/tools/github/revloop/fleet_vitals.py +0 -0
  20. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/src/main/alissa/tools/github/revloop/ghclient.py +0 -0
  21. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/src/main/alissa/tools/github/revloop/loop_events.py +0 -0
  22. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/src/main/alissa/tools/github/revloop/proc.py +0 -0
  23. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/src/main/alissa/tools/github/revloop/prompts.py +0 -0
  24. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/src/main/alissa/tools/github/revloop/prreview.py +0 -0
  25. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/src/main/alissa/tools/github/revloop/state.py +0 -0
  26. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/src/main/alissa/tools/github/revloop/trust.py +0 -0
  27. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/src/main/alissa/tools/github/revloop/version.py +0 -0
  28. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/src/main/alissa/tools/github/revloop/webui/__init__.py +0 -0
  29. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/src/main/alissa/tools/github/revloop/webui/__main__.py +0 -0
  30. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/src/main/alissa/tools/github/revloop/webui/auth.py +0 -0
  31. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/src/main/alissa/tools/github/revloop/webui/page.py +0 -0
  32. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/src/main/alissa/tools/github/revloop/webui/server.py +0 -0
  33. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/src/main/alissa/tools/github/revloop/webui/sources.py +0 -0
  34. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/src/main/alissa/tools/github/revloop/webui/sysinfo.py +0 -0
  35. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/src/main/alissa_tools_github_revloop.egg-info/SOURCES.txt +0 -0
  36. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/src/main/alissa_tools_github_revloop.egg-info/dependency_links.txt +0 -0
  37. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/src/main/alissa_tools_github_revloop.egg-info/entry_points.txt +0 -0
  38. {alissa_tools_github_revloop-0.31.4 → alissa_tools_github_revloop-0.31.5}/src/main/alissa_tools_github_revloop.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alissa-tools-github-revloop
3
- Version: 0.31.4
3
+ Version: 0.31.5
4
4
  Summary: ALISSA-TOOLS-GITHUB-REVLOOP
5
5
  Home-page: https://alissa.app
6
6
  Author: Fahera
@@ -647,17 +647,20 @@ class VerdictEnvelope:
647
647
  envelope has no parseable `Merge-Readiness` line -- the case the native
648
648
  post fails closed on. `readiness_reason` is already one bounded,
649
649
  backtick-free line (see clean_readiness_reason); empty when the envelope
650
- gave none. `readiness_class` is the READINESS_CLASSES token an operator
651
- reason leads with (issue #142), or None: for `auto`, for an unclassed
652
- operator reason, and for a missing line alike -- the reason keeps the
653
- prefix either way, so the class is never lost between here and the
654
- native trailer.
650
+ gave none, and it keeps the class prefix an operator reason leads with
651
+ (issue #142) -- so the class is never lost between here and the native
652
+ trailer.
653
+
654
+ The class is deliberately NOT a field. It is a function of the reason
655
+ (classify_readiness_reason), the emitter copies the reason whole, and
656
+ the narration reads the class back off the emitted line -- so the fact
657
+ has one source, and a second copy here would be a reader-less field
658
+ that could only ever drift from it (PR #143 round 1).
655
659
  """
656
660
 
657
661
  verdict: str
658
662
  readiness: "str | None" = None
659
663
  readiness_reason: str = ""
660
- readiness_class: "str | None" = None
661
664
 
662
665
 
663
666
  @dataclass(frozen=True)
@@ -1158,9 +1161,12 @@ class Alissa:
1158
1161
  continue
1159
1162
  match = _VERDICT_RE.search(blob)
1160
1163
  if match:
1161
- readiness, reason, klass = parse_readiness(content)
1164
+ # The class the triple carries is not stored: the
1165
+ # reason keeps its prefix, and the envelope's readers
1166
+ # re-derive the class from the line they emit.
1167
+ readiness, reason, _ = parse_readiness(content)
1162
1168
  if readiness is None:
1163
- readiness, reason, klass = parse_readiness(title)
1169
+ readiness, reason, _ = parse_readiness(title)
1164
1170
  found.append(
1165
1171
  (Alissa._created_key(item.get("createdAt")),
1166
1172
  index,
@@ -1168,7 +1174,6 @@ class Alissa:
1168
1174
  verdict=match.group(1).lower(),
1169
1175
  readiness=readiness,
1170
1176
  readiness_reason=reason,
1171
- readiness_class=klass,
1172
1177
  ))
1173
1178
  )
1174
1179
  break
@@ -713,6 +713,16 @@ _RECORD_THE_CAP = (
713
713
  # reviewer needs to classify honestly: an unverified-* hold is validation
714
714
  # work, not merge risk, and saying so lets the policy merge it. The table's
715
715
  # rows are the README's, condensed; the README is the long form.
716
+ #
717
+ # The table is closed, so the directive must also say what to do when NO
718
+ # row fits (PR #143 round 1): the skill's checklist has operator triggers
719
+ # the enum does not name (dependencies, a deleted public surface, a waived
720
+ # `[major]`, a judgment residual, an operator gate that is a human action).
721
+ # A reviewer told the class is mandatory would shoehorn such a reason into
722
+ # the nearest row, and the nearest row for a vague reason is one of the
723
+ # `unverified-*` pair -- exactly what the policy may merge unattended. So
724
+ # the directive names the way out: no row, no class, and unclassed is the
725
+ # correct hard hold, never a failure.
716
726
  _MERGE_READINESS_LINE = (
717
727
  "Your verdict envelope MUST carry the skill's `- **Merge-Readiness:** auto | "
718
728
  "operator — <class>: <reason>` line, AND your OWN native review (every `gh pr "
@@ -742,7 +752,13 @@ _MERGE_READINESS_LINE = (
742
752
  "`release-act` (the merge itself is a release — VERSION bump → publish, tag, "
743
753
  "npm). "
744
754
  "When more than one row applies, name the MOST SEVERE one — the row listed "
745
- "first — and only it. Classify honestly, not defensively: an unverified-* "
755
+ "first — and only it. If NO row fits — a dependency change, a deleted or "
756
+ "renamed public surface, a waived `[major]`, a judgment residual, an "
757
+ "operator gate that is a human ACTION rather than a look or a smoke run — "
758
+ "write the reason with NO class: an unclassed operator line is the correct "
759
+ "hard hold, never a failure, and shoehorning such a reason into the nearest "
760
+ "row is the one misclassification the merge policy cannot recover from. "
761
+ "Classify honestly, not defensively: an unverified-* "
746
762
  "hold is validation work the human does at gate 2 anyway, not merge risk, "
747
763
  "and the merge policy may merge it while it keeps holding every row above; "
748
764
  "an operator line whose reason leads with no recognised token still parses "
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alissa-tools-github-revloop
3
- Version: 0.31.4
3
+ Version: 0.31.5
4
4
  Summary: ALISSA-TOOLS-GITHUB-REVLOOP
5
5
  Home-page: https://alissa.app
6
6
  Author: Fahera