5.6 KiB
5.6 KiB
Current State
Current Focus
The controlled public-deployment source snapshot is published on main at https://git.nianxx.cn/shiyuyun/wyndham-ARR.git; initial deployment commit a701de9 contains the verified source snapshot. Its Compose Web entry explicitly enables --enable-processing --secure-cookies; Caddy is the only public listener and adds HTTPS plus Web Basic Auth, while MCP retains its independent bearer and exact Host allowlist. Local application defaults remain fail-closed. The snapshot passes 259 tests with 2 environment skips plus contract, checksum, candidate-file and secret scans. No public server deployment has been performed from this workspace.
Recently Completed
- 2026-07-29: Published the deployment-ready snapshot to the empty self-hosted repository as
main, established upstream tracking and verified that the remote branch contains initial commita701de9. - 2026-07-29: Added a Linux Dockerfile, Compose, Caddy TLS boundary, production env example and deployment runbook. The Web health gate requires both
database_readyandprocessing_ready; the production command opens XML processing without changing the source default. - 2026-07-29: Added opt-in HTTPS
Securesession cookies, made the booking fixture root portable, removed local paths/test endpoints/temporary tunnel names from the publishable snapshot, and verified 271 final candidate files (about 2.0 MiB) contain no detected secrets, symlinks or files larger than 1 MiB. - 2026-07-29: Ran the complete Python suite in a dependency-complete Python 3.12 environment: 259 tests passed and 2 were skipped. Compose YAML, JSON contracts and controlled package checksums also passed static validation.
- 2026-07-29: Restarted the controlled MCP and fixed-domain ngrok sessions. An initial authenticated 421 exposed a preserved public Host; the MCP was safely restarted with an exact loopback/public Host allowlist, after which public initialize and tools-list both returned 200.
- 2026-07-29: Reverified gateway 1.0.1, protocol 2025-11-25, one tool, 2195-byte advertised schema, and zero
$ref/$defs/$idkeys without invoking the business tool. - 2026-07-29: Diagnosed the SuperAgent MCP
failedstate: ports 8890/4040 have no listeners, the old temporary PIDs are gone, TLS remains valid, and the public/mcprequest is rejected by ngrok as an offline endpoint before reaching ARR authentication or MCP protocol handling. - 2026-07-29: Started a controlled upload-capable Web instance on
127.0.0.1:8766and submitted one no-PII XML through the real page. - 2026-07-29: Confirmed job
arrjob-fdc2c1a0695c41b3b372a52033b2f567reached SuperAgent run7e1ad2fe-cb59-4d04-b92c-9f09d98f4ef8; remote status wassuccess, but MCP submission and all2038-01-19Finance facts remained absent. - 2026-07-29: Safely terminalized the failed test as
PROCESSING_RESULT_MISSING, revoked its unconsumed grant, verified zero business writes, and stopped port 8766. - 2026-07-29: Confirmed that XML upload is the only required user action; successful structured-data commit must automatically trigger monthly processing.
- 2026-07-29: Confirmed that
TOTAL PRICEis required and must be an Excel formula equal toREAL PRICE × NIGHTS × NO_OF_ROOMS. - 2026-07-29: Initialized
.project-docsand recorded the correction in ADR-001.
In Progress
- No local repository publication work remains. Runtime deployment, DNS/Secret injection and SuperAgent stable-domain rebinding belong to the user's public server environment.
Next Recommended Steps
- Deploy the repository using
deploy/README.md, inject real Secrets only on the server, and require the public Web health response to reportdatabase_ready=trueandprocessing_ready=true. - Rebind SuperAgent to
https://<MCP_PUBLIC_HOST>/mcp, rediscover exactlyarr_submit_processing_result, save/publish the new Agent version, and stop relying on the temporary ngrok endpoint. - Rerun the vertical slice with a fresh no-PII XML and require a
committed/already_committedreceipt plus matching Finance version, current pointer and fact rows. - In separately authorized implementation work, add the automatic post-commit monthly dispatch and required
TOTAL PRICEformula behavior.
Open Questions / Blockers
- Docker and Caddy are not installed in this workspace, so image build, Compose runtime, DNS, ACME issuance and public HTTP checks must be performed on the deployment server.
- SuperAgent administration requires the user's authenticated platform session; its stale MCP configuration must be replaced with the new stable public MCP domain after deployment.
- The restored ngrok/MCP sessions remain temporary and are not the formal deployment target.
ProcessingRunner.poll()can emitdelivery_missing, but the PostgreSQL state adapter has no matching status mapping. The live run therefore required a guarded manual terminalization transaction.- The exact automatic monthly dispatch mechanism and business-time/cutoff derivation policy still require implementation design; neither is a user input.
Risky Areas
- A SuperAgent run reporting
successis not business success; only an MCP receipt and committed database facts qualify. - Enabling upload on the current all-interface 8765 listener without a confirmed authentication boundary would expose a mutation endpoint.
- Committing
deploy/.env.production, publishing 8765/8890 directly, omitting TLS/Basic Auth, or reusing the MCP/SuperAgent/HMAC credentials would break the deployment boundary. - Triggering before commit, duplicate trigger delivery, deriving the wrong reporting period, or replacing formulas with cached/static amounts.
Last Updated
2026-07-29