Skip to content

feat: expose the Classic writing-books scenario - #643

Merged
zoeyrose merged 1 commit into
mainfrom
chore/book-writing-564-validation
Oct 5, 2026
Merged

zoeyrose merged 1 commit into
mainfrom
chore/book-writing-564-validation

Conversation

@zoeyrose

@zoeyrose zoeyrose commented Oct 5, 2026 •

Copy link
Copy Markdown
Member

Summary

Expose the server-owned writing-books preset through the workspace scenario CLI and shell completion for the Classic book-writing issue.

Companions: Classic PR #567 and content PR #266.

Implementation / behavior

  • Add writing-books to the existing preset allowlists and document isolated creation/show/reset usage.
  • Extend scenario forwarding and completion coverage. Gameplay items, skills and account provisioning remain owned by the Classic server; content is content@main and its Classic-target artifact.

Validation

  • 31 focused scenario/completion tests passed (3 shell-dependent skips).
  • Compileall, guidance inventory, manifest validation and whitespace checks passed.
  • Full suite executed: 2,063 tests. Targeted reruns corrected private fixture history, temporary-path and umask differences. Nine residual failures/errors also reproduce at the base revision: unsafe shared Git configuration permissions, a native-context fixture expectation and unavailable -lz; the full suite is not reported as passing.
  • The preset provisioned the isolated Classic scenario used for 22 authenticated gameplay checks and controlled restart persistence. Runtime stopped cleanly.
  • Independent review completed.

Limitations / follow-up

Hosted workspace CI passes on the published revision. Requires the companion Classic implementation and Classic-target content. The local full-suite environment limitations above remain; no host permissions, trust policy or package installation were changed.

@zoeyrose
zoeyrose marked this pull request as ready for review October 5, 2026 02:07
@zoeyrose
zoeyrose merged commit 193ed2f into main Oct 5, 2026
16 checks passed
@zoeyrose
zoeyrose deleted the chore/book-writing-564-validation branch October 5, 2026 18:09
@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown

🎉 This PR is included in version 8.72.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

zoeyrose added a commit to atrinik/classic that referenced this pull request Oct 9, 2026
…es (#567)

## Summary

Applying a writing pen to a marked inventory book opens a title/text
editor with Save, Cancel, explicit copy selection and permanent Sign and
date confirmation.

Closes #564.

Companion content: atrinik/content#266
(`content@main`, Classic-target artifact). [Workspace PR
#643](atrinik/atrinik#643), already merged,
provides the deterministic `writing-books` preset. [Wrapper PR
#644](atrinik/atrinik#644) supports main's
verified inherited private-state capability.

## Implementation / behavior

- Coordinate protocol revision 1083, bounded request/snapshot parsing,
client popups and authoritative server commits. Preserve published
access IDs and main's exploration IDs 25/32; append `BOOK_EDIT` at C2S
26/S2C 33.
- Edit unsigned inventory books and copy both title and contents without
transferring signatures. Persist authenticated character signatures,
in-game dates and separate UTC timestamps; finalization locks title and
text.
- Fence commits against custody, identity, signed state, prerequisites
and stale snapshots. Preserve quest hooks and safe script properties,
handle stacks and reject unpaid/invisible items.
- Charge one ink unit per newly inserted UTF-8 byte using exact
bit-parallel LCS, bounded to 65,536 word updates at maximum text length.
Unchanged text, deletions, titles and signing remain free.
- Enforce finalization in the actual Python Object API, including
protected setters, signature keys, bulk mutations and
serialized-field/artifact injection routes. Safe quest metadata remains
writable.
- Retain drafts when closing/reopening on the same connection; clear
them at actual disconnect, logout, shutdown and new-connection
boundaries. Capture privacy remains denied until a clean frame is
presented.
- Retire message-bearing inscription commands with editor guidance.
Preserve other skills and spell casting.

## Validation

The three inline review findings are addressed in published revision
`fbf212243`. Latest main `0d87e9073` is merged, including account
exploration, runtime/provider fixes and informational Codecov reporting.
Native and behavioral evidence records its tested revision `90dd453a`;
independent review verifies identical relevant application, library,
protocol and book-fixture inputs after the six-file benchmark-fixture
refresh.

- Independent integrated source review is clean, including exact ink
costs, serialization bypasses, connection lifecycle and published
protocol IDs.
- Protocol generator/bindings, 13 protocol tests, import-history and
whitespace checks pass.
- The complete 386-test tooling suite passes in the pinned compiler
image using a writable task-owned fixture snapshot.
- Added independent DP-oracle, carry-boundary, maximum-size and repeated
dry-pen regressions; real Python setter/clone/save/reload tests; real
socket lifecycle and Settings → Logout/account-reuse assertions.
- Fresh pinned native debug builds pass: server 61 tests, shared library
21 tests and protocol 2 CTest entries. Each client
debug/coverage/ASan-UBSan run executes 70 passing tests and skips 24 GPU
tests.
- Actual software Vulkan/SDL replay passes nine book states, existing UI
states, Settings → Logout/account-tag reuse and capture-privacy recovery
assertions.
- Isolated protocol-1083 gameplay passes all 22 checks; controlled
restart passes three persistence checks. The owned server and runtime
container are stopped.
- Latest main's fixture refresh passes 50 focused Python tests and both
provenance/byte verifiers; published command IDs, import history and
whitespace checks pass.
- Fresh server coverage/ASan-UBSan suites pass: 59/60 tests. Independent
oracle and actual Python/script/lifecycle regressions pass in the
instrumented builds.
- All required hosted checks pass on final head `fbf212243` against main
`0d87e9073`: Classic validation, CodeQL validation and Conventional PR
title. Native Windows security tests and trusted GPU renderer coverage
pass, including the fresh GPU-complete Codecov upload.
- All three review threads have fix explanations and are resolved. Final
independent source and evidence review is clean.

## Limitations / follow-up

Fresh acceptance is complete. Codecov upload succeeds; reporting is
informational under main's policy. Local SDL verification uses recorded
Xvfb/lavapipe inputs and demonstrates software rendering behavior;
hardware qualification remains separate. Companion content still
requires integration and publication through its Classic-target
artifact. No merge or release is included.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant