Skip to content

Use the selected Curated profile input budget for story requests #143

Closed

Description

@R055LE

Observed production failure

At deployed 4896951, the October 31 and November 2–7 scheduled checks failed with unusable model response: developing story model context exceeds limit; skipped. November 1 posted successfully. The attempt ledger confirms these request-construction failures happened before provider dispatch, with no outstanding exposure; this is not a connection or exhausted daily-budget error.

A read-only reconstruction using the saved Scout snapshots and confirmed history matched every recorded input fingerprint. No completion requests or production writes were made.

Check date Request characters Conservative profile input bound
October 31 18,024 20,396
November 1, delivered 16,969 19,351
November 2 19,186 21,601
November 3 18,679 21,116
November 4 19,220 21,653
November 5 19,200 21,624
November 6 19,187 21,600
November 7 18,258 20,695

stories._messages() retains an 18,000-character gate, while the selected profile already has a conservative UTF-8 request bound of 32,768 including schema/envelope headroom, enforced before reservation and I/O. _model_input() has an earlier payload-only 18,000-character gate. The eight-full-excerpt test currently totals 17,996 characters: only four characters of metadata/history headroom.

Scope and acceptance

  • For the selected Curated request profile, consistently use its existing complete-request input bound for initial draft, validation revision, semantic revision and review. Remove the conflicting earlier payload-only limit from that selected path. Preserve legacy behavior explicitly.
  • Preserve all admitted source evidence, eight-source/1,600-character excerpt bounds, original citation ordinals, chronology, confirmed history, exact quote validation and independent review. Do not silently shorten evidence or drop history to fit.
  • Preserve model pins, reasoning/output settings, provider checks, four-call workflow and durable reservations. Keep the approved daily token/dollar/attempt/workflow limits unchanged. Reject truly oversized selected-profile requests before reservation or provider I/O.
  • Regress realistic full-source metadata and prior-delivery history, escaped/Unicode input accounting, the exact selected boundary and over-boundary behavior, and each workflow stage. Keep tests about observable admission/evidence preservation rather than mirroring helpers.
  • Make local request-size rejection distinguishable from an unusable model response where it can be done within this scoped path; no raw prompts or provider payloads in diagnostics.
  • Validate offline, including reconstruction of the observed input shape. No extra paid preview, public post, production mutation, merge or deployment is included in implementation.

Related: #106, #107, #116, #117. The successful November 1 delivery also supplies the first scheduled acceptance evidence after the profile cutover. Keep the separate catalog warning #137 out of this diff.

Activity

  1. R055LE commented on Nov 7, 2026

    @R055LE
    OwnerAuthor

    Implementation intake: one supervised active-route writer owns branch/worktree issue-143-context-budget, based on main 4896951. Context is private, authority is scoped worktree edits/tests, complexity standard. Coordinator retains GitHub and production authority; independent review is read-only. Stop at a checked PR for the scoped request-budget correction. No paid calls, live DB writes, merges, deployment, model changes or daily-capacity changes are authorized by this implementation handoff.

  2. R055LE commented on Nov 7, 2026

    @R055LE
    OwnerAuthor

    Independent review identified a necessary recovery detail: context-construction failures become terminal rejected observations, and timestamp-only refresh deliberately preserves their fingerprint. Include the selected-profile input-admission policy and its existing bound in the fingerprint so corrected admission can reconsider the same evidence once. Preserve legacy fingerprints, stable fingerprints under the new policy, daily/workflow caps, and existing seen/delivery guards. Regress eligibility against an old rejected fingerprint; do not clear or rewrite production observations.

    Coordinator baseline replay reproduced all seven failed request constructions and the November 1 success using read-only historical inputs. Candidate replay will check the same first-request boundary with networking disabled; workflow-stage and pre-reservation enforcement remain offline test obligations.

  3. R055LE commented on Nov 7, 2026

    @R055LE
    OwnerAuthor

    Implementation and independent review are complete in PR #144, head 5254be28be3fbb91c3c3301399b2da42838c560c, based on 489695194fcc75df272a0f4e30ebaa037e0d62be.

    Validation:

    • Writer: 771 tests passed; 88.45% coverage; Ruff and diff checks passed.
    • Coordinator: inspected the final six-file diff and independently ran 11 focused regressions, all passing. A separate read-only reviewer found no blockers.
    • CI passed on Python 3.12 and 3.14, including lint, tests/coverage and dependency audit: https://github.com/R055LE/roger/actions/runs/42383206619.
    • Historical reconstruction reproduced all eight production input versions. Baseline first-request admission failed seven times and passed once; candidate passed all eight with source excerpts and prior-delivery records preserved. The Nov 1 request bytes were unchanged. Candidate bounds were 19,351–21,653, below the existing 32,768 profile ceiling.
    • Replay used the deployed image with the candidate package, disabled networking, a read-only container and read-only source/database mounts. The final production package exactly matches the replayed package. No paid inference or production mutation occurred.

    The regression suite covers complete 2/3/4-call workflows, UTF-8/escaped JSON/schema accounting, exact-limit acceptance, one-over rejection before reservation/provider dispatch, scheduled/preview classification, legacy preservation, and one-time reconsideration of observations rejected under the former input policy. Historical replay itself covers first-request admission only, not live editorial quality or delivery.

    Handoff: managed active route; private data; one scoped worktree writer and independent read-only review; standard complexity. All six changed files and full validation are in the PR. Daily capacity, model pins, delivery destination and schedule are unchanged. The paid evaluation adapter remains outside this production correction. Next action is explicit approval to merge PR #144 and allow the normal deployment, then read-only release/runtime checks and observation of the next scheduled outcome. No auto-merge, deployment or extra paid preview has been requested.

  4. R055LE commented on Nov 8, 2026

    @R055LE
    OwnerAuthor

    Approved rollout complete.

    • PR Use the selected profile input budget for Curated stories #144 merged as 58c03ad5b94ef99252c14285b3acc6c348df3522; its tree exactly matches the reviewed branch.
    • Release build, Trivy scan, push and keyless signing all passed on the first attempt: https://github.com/R055LE/roger/actions/runs/42433093042.
    • The existing deployment timer applied the release successfully at 2026-11-08 01:13:48 UTC (November 7, 20:13 EST). No configuration change or manual deployment was needed.
    • Live revision is the merge commit. Running image ID: sha256:9f6cda2ead7f3f01cd8f46a4320f7ef35d52a6a40e892480d8d7f3058a909ec8. All three changed production Python files match the reviewed source hashes.
    • Container healthy; Discord online; required permissions passed; no configured-channel errors or startup traceback. The known catalog warning tracked by Recognize canonical model slugs in startup preflight #137 remains.
    • Existing Digest destination, sol-astra-v1, developing stories, 07:00 America/Detroit schedule, one-post ceiling, and daily limits (200,000 tokens, $2.14, four attempts, one workflow) remain intact.
    • Inference ledger unchanged across rollout: four historical attempts, no new attempt, no current-day spend, reservation, uncertainty or overrun. No immediate Curated check, paid preview or news post was triggered.

    The last-check record still contains the November 7 pre-deployment context error. It is historical, not a new failure from this release. Next scheduled acceptance is November 8 at 07:00 EST. Runtime deployment is verified; live editorial/delivery behavior remains to be observed at that check.

  5. R055LE commented on Nov 13, 2026

    @R055LE
    OwnerAuthor

    Scheduled acceptance checked November 12: all five checks on November 8–12 passed the repaired request-construction boundary. No context/JSON failure recurred. November 10 and 12 delivered; both messages were independently fetched read-only from Discord and compared with their stored claims and cited excerpts. Runtime remains healthy on 58c03ad.

    The remaining failures are downstream editorial review/revision outcomes: support rejection after revision on November 8/9, and an unchanged rejected item on November 11. Both successful workflows also required revision. All 19 model calls settled, costing $0.540734 in total; no unsettled attempts or pending deliveries.

    This supplies live request/delivery acceptance for #144. It does not establish satisfactory overall editorial reliability: three of five workflows ended in rejection, rather than a deliberate quiet decision. #148 tracks the missing failure diagnostics needed to judge those rejections before changing prompts/models/review rules. No inference, configuration change or new post was triggered by this inspection.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions