feat(board): session attention, Discord rows, task attribution and relaunch activity (rows 18, 22, #1511, #1512)
One cumulative control-board, webui and seat state. The four rows edit the
same files (scan.mjs, page.html, README.md, app.js), so they land together,
each on its own receipt:
- Row 18, Discord connector rows on the board (#1509): R3 approved by
Darkwing and Dewey, Gitea comment 26257, manifest 254403b8. Jason
accepted the visual test.
- Row 22, board attention status (#1503): Filbert approved R1, comment
26248, manifest e40b58ec; restart receipt 26249.
- #1511, task attribution (row 6 code phase): R2 approved by Filbert and
Dewey, manifest d4c96395. docs/TOOLS.md carries the approved --by usage
line (tools-usage.patch 86bcba3c).
- #1512, relaunch activity (row 6 pilot): R1 approved by Darkwing and
Dewey, candidate manifest 47769fad. All seven source files match it.
Row 16, internal development bootstrap (#1510): the seven files outside
shared records match Filbert's R1 pins, receipt 26204 (agents/researcher/*,
scripts/test-darkwing-launch.mjs, the bootstrap plan).
packages/webui/src/public/app.js is committed at its #1512 R1 pin ce7d79a4.
The working copy holds Dewey's unreviewed return-flow candidate on top of
that, and it stays uncommitted.
Also: the four row briefs and Darkwing's evidence records under
agents/darkwing/work, including the 2026-09-26 tree manifest and the #1512
re-run against 21e3e908. Serial acceptance command: 397/397, three runs.
The failures that only show when tests run concurrently are in #1509 engine
tests, and they reproduce on clean HEAD.
Suites on the exact staged tree: config 24, task 90, foundation 43,
conductor 17, release 14, auth 15, discord 63; package union 397/397
(serial); test-darkwing-launch 5/5.
Shared records (BUILD-LOG, QUEUE, CURRENT, DEFERRED, SESSIONS, AGENTS.md,
agents/README.md) follow in Sage's records commit.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"at": "2026-09-15T00:11:38.757844+00:00",
|
||||
"newBackend": [
|
||||
3414098,
|
||||
"76594640"
|
||||
],
|
||||
"health": true,
|
||||
"pageMatchesReviewedR2": true,
|
||||
"allRowsHaveAttributionField": true,
|
||||
"inapplicableAttributionNull": true,
|
||||
"legacyRegisteredUnknownCount": 2,
|
||||
"agentPaneIdentitiesUnchanged": true,
|
||||
"connectorIdentityUnchanged": true,
|
||||
"allRegistrationBytesUnchanged": true,
|
||||
"rocko": [],
|
||||
"rockoWritePerformed": false,
|
||||
"blocker": "Rocko registration PID 185602 is dead; native context/lock PID is 3707667. No identity repair authorized."
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
{"at": "2026-09-15T00:10:51.631297+00:00", "event": "owner-authorized-restart-intent", "oldBackend": [3769124, "72871926"], "agents": {"default/darkwing": [[2733924, "12863634"]], "default/dewey": [[934346, "466065"]], "default/filbert": [[72183, "100870"]], "default/researcher": [[173699, "66404285"]], "mosaic-fleet/rocko": [[90599, "128275"]]}, "connector": [3022843, "67887873"], "registrationHashes": {"seats/repo/darkwing/registration.json": "4eda287e7f3bee8967052d90d5a15fb8bb61457e25991192bfaffcaba92c6075", "seats/repo/filbert/registration.json": "efe469ed81855c7e4d4667146a2e520c3a5f953a534cf4a90d6739d2e6335767", "seats/repo/rocko/registration.json": "2195325104fdaf13e5a8d351143f6c046144b9b99865d18b21d01564ac23b327", "seats/repo/dewey/registration.json": "92960db9f3f3d5c56c5cc79d23f39b3df3f1dcdeaae61bccbf0e62d98563aa6c", "seats/repo/researcher/registration.json": "77816e560918d2a9534ff2c97ef201605fbb5b6ef8e341d4dd948684082563fa"}, "configHash": "8e6b3a4049c7ab11ab6d842d974da0bcf07985cf4db988995436ed4b94b44338", "rockoWriteBlocked": {"registeredPid": 185602, "nativePid": 3707667}, "pinsVerified": 18}
|
||||
{"at": "2026-09-15T00:10:51.650299+00:00", "event": "replacement-started", "newPid": 3414098, "oldExitedGracefully": true, "log": "/tmp/task-attribution-backend-gmaofryr.log"}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"at": "2026-09-14T14:08:03.786Z",
|
||||
"issue": 1511,
|
||||
"exit": 4,
|
||||
"explicitByRejected": true,
|
||||
"liveFilesChanged": false
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
# Proposed #1511 local test envelope
|
||||
|
||||
Original proposal retained below. Jason authorized the backend update, completed
|
||||
2026-09-15. Rocko's stale registration blocked that target before mutation.
|
||||
Jason then explicitly authorized Filbert instead and confirmed Claude console
|
||||
integration remains separate. The Filbert metadata update and live API checks
|
||||
passed; operator visual acceptance is pending. Receipt: live-test.jsonl.
|
||||
No Rocko registration or process was changed.
|
||||
|
||||
- Reverify the approved R2 pins and current backend PID/start/command/config.
|
||||
Record the five native agent identities and connector service identity.
|
||||
- Restart only the control-board backend on loopback 7331, using its existing
|
||||
command/config. Do not restart agents, WebUI or the Discord connector.
|
||||
- Verify health and that the updated reader accepts existing records. Check
|
||||
actual asset loading before claiming either presentation loaded R2.
|
||||
- For the visual test only, update the repository-native Rocko registration's
|
||||
task to '#1511 task attribution user test', with explicit setter darkwing.
|
||||
Use the reviewed seat task command and explicit repo layout. First verify the
|
||||
registration matches the intended native session; a mismatch blocks the write.
|
||||
- Preserve the original registration privately outside the repository. Never
|
||||
print its contents. Assert only task, taskSetBy and updatedAt change, with all
|
||||
identity fields and startedAt preserved. No other registration may change.
|
||||
- Verify API selection and ask Jason to inspect the 'set by darkwing' tag and
|
||||
caller-claim wording. Legacy registered attribution remains unknown; inferred
|
||||
and connector tasks remain not applicable. Agent/connector identities unchanged.
|
||||
|
||||
Rollback: before any attribution write, an incompatible old reader can be restored
|
||||
only from the retained prior artifact. After the one authorized write, restoring
|
||||
an old reader requires restoring that record's original task metadata first, with
|
||||
an exact unchanged-current-record check. If anything else changed, stop rather
|
||||
than overwrite it. Keep the compatible reader while resolving the conflict.
|
||||
No broad metadata migration or automatic rollback over concurrent edits.
|
||||
|
||||
This envelope does not authorize publication or the later Filbert behavior task.
|
||||
@@ -0,0 +1,3 @@
|
||||
{"at": "2026-09-15T00:36:13.204764+00:00", "event": "owner-authorized-filbert-test-write", "target": "repo/filbert", "backup": "/tmp/task-attribution-filbert-k3o7zimk/registration-before.json", "nativeIdentity": [793364, "56603274"], "backend": [3414098, "76594640"], "agents": {"default/darkwing": [[2733924, "12863634"]], "default/dewey": [[934346, "466065"]], "default/filbert": [[72183, "100870"]], "default/researcher": [[173699, "66404285"]], "mosaic-fleet/rocko": [[90599, "128275"]]}, "connector": [3022843, "67887873"], "beforeHash": "efe469ed81855c7e4d4667146a2e520c3a5f953a534cf4a90d6739d2e6335767"}
|
||||
{"at": "2026-09-15T00:36:13.852595+00:00", "event": "verified", "agent": "filbert", "task": "#1511 task attribution user test", "taskSource": "registration", "taskSetBy": "darkwing", "afterHash": "1bc90238adcb0210fcd027d76ac2d87e292d5fe29e6892d4c3efad4fddb93edd", "onlyAllowedTaskMetadataChanged": true, "allOtherRegistrationsUnchanged": true, "agentAndConnectorIdentitiesUnchanged": true, "backendUnchanged": true, "operatorVisualAcceptance": "pending"}
|
||||
{"at": "2026-09-15T00:47:20.173624+00:00", "event": "operator-visual-confirmed", "tableEvidence": "/tmp/pi-clipboard-afe5713e-77ed-4be6-9a24-d455178ed1f0.png", "inspectorConfirmed": "darkwing (as claimed by the caller, not verified)", "scope": "bounded local attribution delivery; publication and Gate F separate"}
|
||||
@@ -0,0 +1,15 @@
|
||||
d289ec7d3a45c541346ece6b32908d75efe4ca0ad47df729bcf493d9bc9be718 packages/seat/src/seat.mjs
|
||||
a2880bd7b66cd9d6fc3588cc739eadc5db7fe806f81da86e0ac09bbff15a3099 packages/seat/src/cli.mjs
|
||||
4bb04a3188ab9c5c985206da83bc1cc6f9be042a072aad75224560e7acf57e29 packages/seat/README.md
|
||||
c06f2fc951ce56c905a98175dc82966893a2ba801405fb407c6c59363d029288 packages/seat/tests/seat.test.mjs
|
||||
a40c57d011ce54956856c77e6758ca12dcd0ffd4be0d53ae2707b7d3fe3708b1 packages/control-board/src/scan.mjs
|
||||
7f9b3b684e8af9f933d23cab956d32aad345b61be5001f8f6f591d3a91c57d12 packages/control-board/src/page.html
|
||||
5f3bf97fd90045b2b1f08f2922ec0f6b33b3729bef39f9bfcbe0229dcd6e2080 packages/control-board/README.md
|
||||
06a7eab5fa07ca83a210c5317e99ecccff8e8085197b7f66bbbecd67a4d8d541 packages/control-board/tests/scan.test.mjs
|
||||
41bcaf8685437f130edc98aad92cfdb62e8201ee1861531ee9fa99069f681885 packages/control-board/tests/serve.test.mjs
|
||||
64a67c91021de0c0ca583b65f8eed23e7e14415f2c18677b80754a7178363d04 packages/control-board/tests/discord.test.mjs
|
||||
772d564b974de9d30df296d538e7878ceb2421f479ed07285456e7d43dfef8b9 packages/webui/src/public/app.js
|
||||
0aea0461d9a63b43e7cd2fea7cbaf335af48470b01481d3507a48bce8c355f79 packages/webui/tests/fixture.mjs
|
||||
d45b138bdb5a3eaf6cf2470b7b2beed16de0a635ad1868c8d25336b4040fe163 packages/webui/tests/browser.test.mjs
|
||||
d39e5d1e1b7e3d4aa6689e20faabeee6691656e8661f866d98731912eb140d06 packages/webui/tests/browser-edge.test.mjs
|
||||
c97fd047a970326c096a4771f9bd49496fb6ff244047ea5c1e59bdd7adaeefa2 packages/webui/tests/discord.test.mjs
|
||||
@@ -0,0 +1,46 @@
|
||||
# #1511 R1 combined review
|
||||
|
||||
Author Rocko. Frozen candidate /tmp/task-attribution-r1-frozen-sRoqqr5m.
|
||||
15-file manifest: r1-manifest.sha256, SHA256
|
||||
0185cc65c973f6d89c394e2e9fba67fccd794b8ad2be2720a8bb3700b2b018a3.
|
||||
Darkwing independently matched every author pin against frozen and working files.
|
||||
The author snapshot contains selected files, not a standalone runnable checkout.
|
||||
|
||||
Both independent lanes returned before correction authorization.
|
||||
|
||||
## Filbert backend verdict
|
||||
|
||||
APPROVE AS SOURCE for exact R1, subject to separate presentation review.
|
||||
Reported independent serialized seat/board/WebUI 141/141 in both working tree
|
||||
and dependency-complete overlay /tmp/filbert-task-attribution-review-EaqP6CYc.
|
||||
Log: TASK-ATTRIBUTION-TESTS.txt in overlay. Working launcher regressions 6/6,
|
||||
/tmp/filbert-task-attribution-launchers.txt. Additional invalid-environment and
|
||||
control-character probes passed. All 15 pins matched after tests.
|
||||
|
||||
Confirmed optional v1 compatibility, precedence/refusal rules, preservation of
|
||||
other fields and task-selected attribution only. No backend blocker.
|
||||
Nonblocking comment correction: bounded identifier syntax does not guarantee
|
||||
absence of private identifiers. Numeric IDs and email-like names still fit.
|
||||
Remove that inaccurate privacy claim in a separately pinned R2.
|
||||
|
||||
## Dewey UX verdict
|
||||
|
||||
REQUEST CHANGES, R1-U1. WebUI inspector maps null/inapplicable attribution to
|
||||
unknown, conflating a transcript/connector task with a legacy registered task
|
||||
whose setter is unknown. Preserve null as not applicable or a missing-value
|
||||
marker. Keep unknown for a selected legacy registration. Add assertions for
|
||||
legacy unknown, transcript/Discord null, and transition from a known setter
|
||||
without stale attribution. Existing edge expectation currently enshrines the bug.
|
||||
|
||||
Dewey independently ran matching working-tree browser, browser-edge and Discord
|
||||
suites, 3/3 passed, 330 contrast samples. Frozen/working pins matched before and
|
||||
after. No screenshots, live observation or full backend verdict claimed.
|
||||
Escaping, placement and reply boundaries otherwise passed his scoped review.
|
||||
|
||||
## Disposition
|
||||
|
||||
R1 is not approved for integration. Preserve its snapshot and manifest. Rocko
|
||||
corrects R1-U1 and the inaccurate comment, reruns applicable checks, and supplies
|
||||
R2 with changed/inherited pins. Both review lanes then verify the exact R2.
|
||||
The missing docs/TOOLS.md usage flag is required additive documentation; preserve
|
||||
other owners' dirty edits when adding it. No Gate F, live change or publication.
|
||||
@@ -0,0 +1,15 @@
|
||||
eec970961a667c9e614d1474d33c31a019b2cf1b0bf931a51458d874bca13a15 packages/seat/src/seat.mjs
|
||||
a2880bd7b66cd9d6fc3588cc739eadc5db7fe806f81da86e0ac09bbff15a3099 packages/seat/src/cli.mjs
|
||||
4bb04a3188ab9c5c985206da83bc1cc6f9be042a072aad75224560e7acf57e29 packages/seat/README.md
|
||||
c06f2fc951ce56c905a98175dc82966893a2ba801405fb407c6c59363d029288 packages/seat/tests/seat.test.mjs
|
||||
a40c57d011ce54956856c77e6758ca12dcd0ffd4be0d53ae2707b7d3fe3708b1 packages/control-board/src/scan.mjs
|
||||
7f9b3b684e8af9f933d23cab956d32aad345b61be5001f8f6f591d3a91c57d12 packages/control-board/src/page.html
|
||||
5f3bf97fd90045b2b1f08f2922ec0f6b33b3729bef39f9bfcbe0229dcd6e2080 packages/control-board/README.md
|
||||
06a7eab5fa07ca83a210c5317e99ecccff8e8085197b7f66bbbecd67a4d8d541 packages/control-board/tests/scan.test.mjs
|
||||
41bcaf8685437f130edc98aad92cfdb62e8201ee1861531ee9fa99069f681885 packages/control-board/tests/serve.test.mjs
|
||||
64a67c91021de0c0ca583b65f8eed23e7e14415f2c18677b80754a7178363d04 packages/control-board/tests/discord.test.mjs
|
||||
954d98fa2e6b264ed751857f0b76bb36c966c1ef59e4b091eb0b5351e84783d7 packages/webui/src/public/app.js
|
||||
0aea0461d9a63b43e7cd2fea7cbaf335af48470b01481d3507a48bce8c355f79 packages/webui/tests/fixture.mjs
|
||||
01636f05a8a59e8aaf7da000e631b83718b79a5e5bbc36d5b67738215cc250a7 packages/webui/tests/browser.test.mjs
|
||||
b1c2860e69bb099fda476c291c41adddf736dcaf99b68620d5401ce92396336a packages/webui/tests/browser-edge.test.mjs
|
||||
24cf26c357164857f29be4f47204812d560310ee79dfbfebd7aa48f7a84ba9b0 packages/webui/tests/discord.test.mjs
|
||||
@@ -0,0 +1,41 @@
|
||||
# #1511 R2 source approval
|
||||
|
||||
Author Rocko. Frozen /tmp/task-attribution-r2-frozen-3PqORMJP.
|
||||
15-file manifest r2-manifest.sha256, SHA256
|
||||
d4c963952b3f2b0e1c99133b3fe3fefa4c1883b79a009dc1f8d20ef58b46ca16.
|
||||
Darkwing verified all working/frozen pins and all retained R1 pins. Exactly five
|
||||
changed files, ten inherited. R1 remains unchanged.
|
||||
|
||||
Filbert independently APPROVED backend/schema/tests as source. He verified
|
||||
working/frozen/overlay pins after 141/141 serialized seat/board/WebUI checks in
|
||||
both working tree and /tmp/filbert-task-attribution-r2-review-v6KDM7pv.
|
||||
Log: R2-TESTS.txt there. Privacy-syntax comment finding closed.
|
||||
He also approved only Darkwing's additive TOOLS usage patch, SHA256
|
||||
86bcba3c2889b12151aefa1fa266fff81bb91126450b2deeb7ca519869ff2253.
|
||||
Other dirty TOOLS changes are not adopted or approved by that verdict.
|
||||
|
||||
Dewey independently APPROVED scoped source UX. R1-U1 CLOSED. Null stays not
|
||||
applicable, legacy registration unknown stays unknown, and transition assertions
|
||||
remove prior setter names. Matching working-tree browser/browser-edge/Discord
|
||||
checks 3/3 passed, 330 contrast samples. No screenshots or live visual observation.
|
||||
He rechecked all 15 pins after tests. Dependency context was the working tree.
|
||||
|
||||
Darkwing additionally ran the broader working-tree command:
|
||||
|
||||
node --test --test-concurrency=1 packages/control-board/tests/ packages/webui/tests/ packages/seat/tests/ packages/mosaic/tests/ packages/ledger/tests/ packages/discord/tests/
|
||||
|
||||
344/344 passed, exit 0. Log /tmp/darkwing-task-attribution-r2-tests.txt.
|
||||
This is serialized local verification, not CI or default-concurrency success.
|
||||
|
||||
## Reader compatibility and remaining gate
|
||||
|
||||
Filbert and Darkwing independently reproduced the old strict-v1 reader rejecting
|
||||
a new taskSetBy field. New readers accept both old and new records.
|
||||
Darkwing's synthetic-only receipt is reader-compatibility.json; no live record
|
||||
was used for that probe. Optional v1 is backward-read compatible, not old-reader
|
||||
forward compatible. Update cached readers before any live attribution write.
|
||||
Do not roll an old reader back over new records without an approved restoration.
|
||||
|
||||
Source approval is complete. Live reader update, operator testing and publication
|
||||
remain separate. Gate F and the Filbert stale-relaunch assignment are not started
|
||||
or claimed by these approvals. No agent or connector restart is authorized here.
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"at": "2026-09-14T14:28:14.532Z",
|
||||
"oldReaderRejectsNewField": true,
|
||||
"newReaderAcceptsOldAndNew": true,
|
||||
"syntheticOnly": true,
|
||||
"liveRegistrationReadsOrWrites": 0,
|
||||
"requirement": "Update cached readers before first live attribution write; old-reader rollback is incompatible with new records."
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
--- a/docs/TOOLS.md
|
||||
+++ b/docs/TOOLS.md
|
||||
@@ -137 +137 @@
|
||||
-scripts/mosaic seat task <seat> <text> [--layout repo|fleet|unknown] [--config PATH]
|
||||
+scripts/mosaic seat task <seat> <text> [--by NAME] [--layout repo|fleet|unknown] [--config PATH]
|
||||
Reference in New Issue
Block a user