Skip to content

feat: regenerate with the from/to filters and the orders labels route - #3

Merged
nathanfallet merged 2 commits into
mainfrom
feature/regen-dates-and-labels-route
Oct 21, 2026
Merged

nathanfallet merged 2 commits into
mainfrom
feature/regen-dates-and-labels-route

Conversation

@nathanfallet

@nathanfallet nathanfallet commented Oct 21, 2026 •

Copy link
Copy Markdown
Member

What

  • Spec and generated code regenerated from https://api.controlresell.com/api/public/openapi.json (production, API 2.98.0), with scripts/generate.sh. No manual edit of generated code.
  • New in the API since the last regeneration (API 2.95.0): the from/to window on GET /conversations (last message) and GET /conversations/{id}/messages (from inclusive, to exclusive, ISO-8601 with an offset; API 2.96.0, parser PublicDateWindow.kt), and GET /orders/labels, the labels still to ship over all the orders (backend PR guimauvedigital/controlresell-backend#1497, API 2.98.0, rule API-024 of the public-api domain). OrderLabel now carries orderId.
  • Hand-written layer: orders().labelsToShip and listAllLabelsToShip; from/to (OffsetDateTime) added to conversations().list, listAll, messages, listAllMessages. Breaking before the first release: these four methods gain two trailing arguments (pass null for none).

Validation

mvn -B verify passes (2 new tests).

Not done

Nothing is published to any registry (waits for Nathan's yes).

Revue automatique (cr-review)

Commit relu : 7ea2854d08ee38a4b6fa16bd50aa9e4b7ed4299e — 21/10/2026 — tour 1 (N1, ENG-046) — Prête à passer en ready

{
  "schema": "cr-review/1",
  "repo": "java-sdk",
  "pr": 3,
  "head": "7ea2854d08",
  "head_sha": "7ea2854d08ee38a4b6fa16bd50aa9e4b7ed4299e",
  "domain": {
    "sha": "763c3f4f",
    "pull": "ok"
  },
  "risk": "N1",
  "risk_reasons": [
    "SDK public non publié, code généré + couche écrite à la main, additif ou changement avant la première release; aucune zone critique de la table"
  ],
  "round": 1,
  "layers": {
    "code_review": "ran",
    "code_review_effort": "medium"
  },
  "verdicts": [
    {
      "rule": "ENG-001",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-002",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-003",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-004",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-005",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-006",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-007",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-008",
      "verdict": "respectée",
      "evidence": "le diff ajoute le client de deux champs et d une route déjà décrits par API-024 (domains/public-api/business-rules.md) ; aucune règle du domaine ne change, aucune décision dans le fil",
      "blocking": false
    },
    {
      "rule": "ENG-009",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-010",
      "verdict": "respectée",
      "evidence": "aucune version montée, aucun workflow de publication touché ; le corps dit que rien n est publié",
      "blocking": false
    },
    {
      "rule": "ENG-011",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-012",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-013",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-014",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-015",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-016",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-017",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-018",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-019",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-020",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-021",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-022",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-023",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-024",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-025",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-026",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-027",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-028",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-029",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-030",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-031",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-032",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-033",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-034",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-035",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-036",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-037",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-038",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-039",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-040",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-041",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-042",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-043",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-044",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-045",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-046",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-047",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-048",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-049",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-050",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-051",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-052",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-053",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-054",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-055",
      "verdict": "respectée",
      "evidence": "aucun .md dans le diff (README laissé tel quel, commit « Leave the README alone »)",
      "blocking": false
    },
    {
      "rule": "ENG-056",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-057",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-058",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-059",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-060",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    },
    {
      "rule": "ENG-061",
      "verdict": "non applicable",
      "evidence": "hors champ (N0/N1)",
      "blocking": false
    }
  ],
  "correctness": [],
  "findings": [
    {
      "severity": "important",
      "file": "src/main/java/com/controlresell/sdk/ControlResell.java",
      "line": 248,
      "summary": "Suite : quatre méthodes de Conversations changent d arguments : conserver les anciennes signatures en surcharges qui passent null si l on veut éviter la rupture avant la première release"
    },
    {
      "severity": "important",
      "file": "src/main/java/com/controlresell/sdk/generated/api/ConversationsApi.java",
      "line": 1,
      "summary": "Suite : vérifier que parameterToPairs encode le + d un décalage +02:00 dans from/to (le test n utilise que Z)"
    },
    {
      "severity": "important",
      "file": "src/test/java/com/controlresell/sdk/ControlResellTest.java",
      "line": 1,
      "summary": "Suite : tester conversations().list avec from/to et le renvoi de la fenêtre sur la page 2"
    }
  ],
  "blocking": false,
  "status": "ready",
  "attestation": {
    "by": "write-review-section/2",
    "agent": "claude-code",
    "cr_review": {
      "at": "2026-10-21T16:50:20Z",
      "args": "https://github.com/controlresell/python-sdk/pull/3 https://github.com/controlresell/go-sdk/pull/3 https://github.com/controlresell/java-sdk/pull/3 https://github.com/controlresell/kotlin-sdk/pull/5 (N"
    },
    "code_review": {
      "at": "2026-10-21T16:48:48Z",
      "args": "medium https://github.com/controlresell/java-sdk/pull/3"
    }
  }
}

@nathanfallet
nathanfallet marked this pull request as ready for review October 21, 2026 16:52
@nathanfallet
nathanfallet merged commit b65ed59 into main Oct 21, 2026
3 checks passed
@nathanfallet
nathanfallet deleted the feature/regen-dates-and-labels-route branch October 24, 2026 09:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant