874 lines
57 KiB
Markdown
874 lines
57 KiB
Markdown
# Workspace schema and execution audit discussion
|
|
|
|
Status: proposed details for owner review, not an implementation contract.
|
|
Date: 2026-09-06. Parent plan:
|
|
[Agent, project, and workspace foundation](2026-09-06_agent-project-workspace-foundation.md).
|
|
Tracking: `mosaicstack/stack-v2#53`.
|
|
|
|
Field names, enums, enforcement mechanisms, and storage suggestions in this
|
|
file are proposals. Behavior explicitly recorded as an owner ruling is agreed;
|
|
exact transition schemas remain proposed. JSON blocks are illustrative records,
|
|
not JSON Schemas. Requirements R1-R33 come from the owner discussion in the
|
|
parent plan.
|
|
Section 2.1 records the 2026-09-06 owner ruling; its field names and hash
|
|
mechanics are still proposals, not additional approved schema decisions.
|
|
Phase 2 now authorizes detailed drafting and read-only investigation. See the
|
|
[Record and operation contract candidate](2026-09-06_foundation-phase2-contract.md).
|
|
Adopting a schema or changing runtime behavior still requires later approval.
|
|
|
|
## 1. Identity and ownership
|
|
|
|
Proposed rule: stable IDs identify records; display names are editable labels.
|
|
Names such as `code-be-01` remain useful to people but are not sufficient to
|
|
identify an execution attempt. Use explicit composite references, not a
|
|
flattened name such as `agent-project-workspace` that can be misparsed.
|
|
|
|
| Record | Proposed required information | Owner and scope |
|
|
|---|---|---|
|
|
| Agent definition | Schema version, agent ID, name, type, harness reference, SOUL reference, role/policy reference, configuration revision | Reviewed shared identity/configuration. No mission progress or project-specific chat. |
|
|
| Project | Version, project ID, name, policy reference, revision | Authorized project administration. Contains workspaces; references registered agents. |
|
|
| Project registration | Project ID, agent ID, scope role reference and narrowing restrictions, status, revision, granting actor and decision reference | Authorized administrator. Explicit visibility and participation grant, not an agent self-enrollment claim. |
|
|
| Workspace | Version, project ID, workspace ID, name, revision, logical file/state references | Authorized workspace administration. Exactly one parent project, confirmed by owner Q5. |
|
|
| Workspace registration | Project ID, workspace ID, agent ID, scope role reference and narrowing restrictions, status, revision, granting actor and decision reference | Requires valid project registration. May narrow but not widen it. |
|
|
| Mission | Version, mission ID, owning scope, objective, acceptance criteria, status, revision | An authorized work owner. Scope and single-parent relationships are decided in D1; exact fields and lifecycle transitions remain to be specified. |
|
|
| Task | Version, task ID, optional mission reference, owning workspace reference, purpose/acceptance criteria, dependencies, status, revision | Work owner sets intent; Q10 permits lightweight assignments without lengthy mission setup. Exact ad-hoc task shape remains proposed. Execution results do not automatically imply acceptance. |
|
|
| Assignment | Version, assignment ID, task reference, agent ID, full scope, revision, active claim reference | Work coordinator. Distinct from the reusable agent definition and from one attempt to execute it. |
|
|
| Session | Version, session ID, agent/project/workspace IDs, harness session reference, creation mode, predecessor reference when applicable | Workspace-scoped conversation metadata. Scope is immutable. Does not store credentials. |
|
|
| Execution | Version, execution ID, full scope, session ID, launch decision, claim ID/generation, start evidence, resolved-context reference, launch/configuration hash references | Runtime-created attempt record. Resume retains session ID but creates a new execution ID. |
|
|
| Connection | Version, connection ID, authenticated client actor, session/execution references, observer/controller mode, control generation, admission decision, lifecycle | Proposed representation of Q16. One controlling interface; observation and transfer require permission. Connection is not another agent execution. |
|
|
| Context manifest | Version, immutable manifest ID, source references/revisions, selected assignments, resolved skills/policies, prior-session inclusion rule | Launch resolver. Records exactly which approved inputs were supplied. |
|
|
| Event | Version, event ID, event kind, subject references, actor/execution identity, observation source, outcome/evidence references | Trusted producer, append-only. An agent's narrative is not execution evidence. |
|
|
|
|
A field that is optional needs an explicit absence rule in the eventual
|
|
schema. Do not use a missing grant to mean unrestricted access, an absent
|
|
workspace to mean the last-used workspace, or a missing task to mean any task.
|
|
Owner Q10 permits conversation and allowed workspace inspection without a
|
|
mission/task, but scope, permissions, and session/execution identity still
|
|
apply. Requests to change things become explicit recorded assignments without
|
|
lengthy mission setup. Proposed task representation permits no mission reference
|
|
for such work, while requiring purpose and acceptance criteria. Missing mission
|
|
is not an unrestricted grant. Taskless read/conversation event fields and the
|
|
first guaranteed action-audit set remain D11.
|
|
|
|
Proposed formal-schema requirements:
|
|
|
|
- Every record has a version; reject unsupported versions and unknown fields.
|
|
- References resolve to the intended scope and permitted record version.
|
|
- Workspace ID alone is never a sufficient cross-project address.
|
|
- Parent and membership status are checked, not just file existence. Owner
|
|
Q5 requires single-parent hierarchy: each workspace has exactly one project;
|
|
each workspace mission has at most one parent project mission, with standalone
|
|
missions still owned by their workspace. Dependencies are separate typed
|
|
references, not parents, ownership duplication, or access grants.
|
|
- Display names never authorize access or select paths by themselves.
|
|
- IDs and relative paths reject traversal, separators where inappropriate,
|
|
symlink escape, and collisions. Missing targets refuse; do not auto-enroll.
|
|
- Changed declarative records create new revisions. Immutable snapshots retain
|
|
the exact revision used by a launch. Authority cannot change through state.
|
|
- Final schemas must specify timestamp format, ID generation, uniqueness,
|
|
array limits, status transitions, null/absence rules, and secret exclusions.
|
|
|
|
### 1.1 Scope permission roles, owner Q26
|
|
|
|
Use standard permission roles to simplify project/workspace registration, with
|
|
registration-specific restrictions that narrow them. Reader, contributor,
|
|
reviewer, and coordinator were examples, not an approved role catalog.
|
|
|
|
A scope role grants operations in the named scope; it does not change the
|
|
agent's identity/type or expand reviewed role authority. Grants remain bounded
|
|
by agent, project, workspace, mission, and task policy where applicable. Missing
|
|
scope membership still refuses access. A reviewer role does not authorize
|
|
accepting the holder's own delivery. Grant changes and role-definition changes
|
|
are different operations; shared authority changes still require reviewed
|
|
commits under repository policy.
|
|
|
|
Exact role names, permission sets, catalog representation, membership fields,
|
|
and enforcement remain D3. Proposed references in section 1 are not an approved
|
|
RBAC schema or a new configuration location.
|
|
|
|
## 2. Launch request and resolved context
|
|
|
|
Illustrative request for a new conversation continuing established work:
|
|
|
|
```json
|
|
{
|
|
"launchVersion": 1,
|
|
"requestId": "req-001",
|
|
"agentId": "code-be-01",
|
|
"projectId": "mosaic-stack-v2",
|
|
"workspaceId": "sessions",
|
|
"conversation": {
|
|
"operation": "fresh"
|
|
},
|
|
"work": {
|
|
"operation": "continue",
|
|
"assignmentIds": ["assignment-014"],
|
|
"expectedStateRevision": 7
|
|
}
|
|
}
|
|
```
|
|
|
|
Names are illustrative IDs. Authentication is not established by this JSON.
|
|
The service must attach the verified requesting user/service identity from
|
|
the authenticated invocation. A client-supplied actor field cannot grant
|
|
permission. `requestId` detects duplicate requests; its exact retry semantics
|
|
and storage lifetime remain D8.
|
|
|
|
Resume instead names `conversation.operation: resume` and an exact `sessionId`,
|
|
or uses a documented unambiguous current-session lookup in the same scope.
|
|
Owner Q4 ruling: if that scope has never had a conversation, default launch
|
|
creates the initial conversation and announces it without an offer. Record
|
|
initial creation as distinct from a successful resume. An established session
|
|
that is missing or damaged causes an error, not automatic replacement. How
|
|
first-use history is established and retained needs a storage/recovery design;
|
|
absence of a transcript file alone is insufficient proof of first use.
|
|
Fresh allocates a new session ID. Selecting work requires explicit assignment
|
|
or task IDs; the exact record fields remain to be specified. Owner Q8 limits
|
|
default Abandon to this agent's selected assignments; underlying work remains
|
|
unless separately cancelled with authority. Q9 requires an explicit authorized
|
|
assignment change before undertaking an unfinished prerequisite, not automatic
|
|
addition to the selected work. Authorization can be delegated within the
|
|
approved plan under Q7; it need not involve a human prompt for every change.
|
|
|
|
Proposed launch sequence:
|
|
|
|
1. Authenticate the requester and validate the entire request.
|
|
2. Resolve the agent definition, project, workspace, and both registrations.
|
|
3. Check project/workspace visibility and action rights. Derive effective
|
|
authority from the agent ceiling and applicable registrations, mission,
|
|
task, and explicit launch restriction. A lower layer never widens it.
|
|
4. Resolve work references and dependencies against the expected state
|
|
revision. State that changed during the decision causes reconciliation or
|
|
refusal, not an unnoticed switch to a different assignment.
|
|
5. Resolve Resume/Fresh and any active execution. An active Resume returns the
|
|
Q11/Q15 conflict result or user offer, not another launch. Q17 Fresh requests
|
|
controlled replacement: stop new actions, preserve checked state, resolve or
|
|
identify in-flight effects, and confirm safety before acquiring a new active
|
|
claim. Uncertain safety blocks replacement, never starts competing work.
|
|
6. Generate execution-specific inputs and a context manifest. Paths to work
|
|
state come from the selected workspace, never the agent's global seat dir.
|
|
7. Persist the launch decision and identity binding before starting work.
|
|
Record a start result separately. Refusal and failed start are not success.
|
|
8. Start the program through its reviewed adapter using the exact context.
|
|
Record actual startup and bind its session/process to the execution ID.
|
|
9. On exit or interruption, preserve evidence and reconcile active claims.
|
|
A missing completion record means unknown/interrupted, not successful.
|
|
|
|
These are semantic steps, not a claim that multiple file writes are one
|
|
transaction. Crash ordering, claim recovery, and adapter support require
|
|
explicit design and tests. They are D7-D9 and D12.
|
|
|
|
Context content approved in owner Q6, with field layout still proposed:
|
|
|
|
- Assigned mission and success criteria, current assigned tasks and status.
|
|
- Relevant approved project/workspace decisions, not all project history.
|
|
- Dependencies, blockers, and references to verified results.
|
|
- A proposed next step, visibly distinguished from authorized assignment.
|
|
- Unverified notes remain labelled as unverified.
|
|
- No old conversation or automatic chat summary for Fresh. Resume retains only
|
|
its authorized conversation; old session IDs may remain as audit references.
|
|
|
|
Shared governance, identity, and skills still apply through the launch contract.
|
|
Owner Q22: user context is not automatically the whole profile. Only explicitly
|
|
designated general preferences are shared by default; personal/project-specific
|
|
information is supplied where authorized and relevant. Record selected source
|
|
references/revisions without copying private content into public metadata.
|
|
The exact source/revision representation, context grants, and publishers of
|
|
checked state remain schema details. This decision does not change the current
|
|
user-context files, dispatch implementation, or install a filtering mechanism.
|
|
|
|
A generated summary of work can help reading, but cannot replace source
|
|
records or convert an agent claim into accepted state. Fresh must not quietly
|
|
follow a transcript reference and reload the discarded conversation. Any
|
|
intentional historical lookup needs an explicit policy and visible record.
|
|
|
|
The context manifest should record non-secret source identity/revision,
|
|
resolved skill versions, effective policy reference, release/image identity,
|
|
harness/provider/model selection, included work, and generation time. Hashes
|
|
may bind non-secret content, but do not hash credentials into public records.
|
|
Input manifests are execution-specific and write-once; shared prompt scratch
|
|
files or per-agent mutable mission files do not meet this proposal.
|
|
|
|
### 2.1 Canonical configuration and change notices
|
|
|
|
Owner ruling, 2026-09-06, R16-R17: keep canonical SOUL shared by agent identity,
|
|
load the current approved revision on each Resume or Fresh launch, and retain
|
|
execution-specific launch inputs. Running instructions are not silently
|
|
replaced. All TUI/GUI/WUI clients can reference the launch hash and display a
|
|
canonical-versus-running configuration mismatch with a Fresh recommendation.
|
|
A new configuration does not automatically restart sessions or abandon work.
|
|
|
|
Owner Q20: cover shared behavior-affecting agent configuration, not just SOUL.
|
|
Included categories are SOUL, shared instructions, applicable enabled skill
|
|
versions, harness/model settings, and role configuration. Exclude credentials,
|
|
conversation history, and changing task progress. Q21: display automatic,
|
|
non-blocking mismatch notices and support on-demand checks. Keep the mismatch
|
|
visible without repeated interruption, and make details available. Permission
|
|
removal is enforced separately, not delayed behind a Fresh recommendation.
|
|
|
|
Illustrative notice, wording still for review:
|
|
|
|
```text
|
|
Darkwing / Mosaic Stack v2 / sessions
|
|
Agent configuration changed since this session started.
|
|
Start Fresh with the current configuration to continue your saved work.
|
|
Details: running configuration, current configuration, launch record.
|
|
```
|
|
|
|
Proposed record and comparison mechanics:
|
|
|
|
- `launchManifestHash` binds the complete non-secret input manifest for one
|
|
execution. It identifies the recorded launch, not the latest desired state.
|
|
- `agentConfigHashAtLaunch` identifies the comparable canonical agent
|
|
configuration loaded by that execution, including SOUL content/version.
|
|
- A shared status operation returns the execution and launch references,
|
|
stored configuration hash, current canonical configuration hash/revision,
|
|
check time, comparison status, and Fresh recommendation. All clients use
|
|
this operation with the same access checks, not private copies of SOUL.
|
|
- Compute both configuration hashes using the same versioned input definition
|
|
and deterministic representation. Q20 establishes included categories; exact
|
|
field/dependency coverage, algorithm, and encoding remain D16. Hash applicable
|
|
shared content, not just its path or unrelated enabled resources.
|
|
- Do not compare whole launch manifests for configuration drift: execution
|
|
IDs, timestamps, and workspace/task selections legitimately differ between
|
|
launches. Ordinary work-state changes must not look like base-config edits.
|
|
- Do not include secret values or hashes of secrets. Credential refresh and
|
|
selection need their own lifecycle; this notice does not solve #50.
|
|
- Status is `matching`, `changed`, or `unknown`. Missing canonical data,
|
|
unsupported hash format, or unverified loaded inputs cannot report matching.
|
|
Never rewrite an old launch hash to make a running session look current.
|
|
- Pin a consistent input snapshot before starting the execution. If canonical
|
|
configuration changes during startup, compare against that exact snapshot
|
|
afterward; never label a mixture of two revisions as the loaded state.
|
|
- A launch fingerprint describes what was supplied and verified at startup.
|
|
It is not continuous proof that nothing in the process changed afterward.
|
|
Any supported in-process reconfiguration needs a new observed event/status
|
|
model; until then, such changes cannot be represented as verified matching.
|
|
- Record comparison observations with execution ID, compared revisions/hashes,
|
|
check time, source, and reason, without exposing private configuration.
|
|
Canonical changes need their own actor/revision record. Notification delivery
|
|
does not count as relaunch or adoption of the new configuration.
|
|
- Resume with changed configuration warns that the retained conversation can
|
|
still reflect old instructions. Fresh starts without that conversation;
|
|
adopting the new configuration does not clear the workspace or choose
|
|
Abandon on the user's behalf.
|
|
|
|
Q21 settles automatic non-blocking notices plus on-demand checking. Transport,
|
|
change-detection mechanism, acknowledgement behavior, and notification frequency
|
|
remain D16. No polling service is installed or implementation authorized by
|
|
this decision. Short hashes may be shown for readability; the full values and
|
|
source revisions must remain available through the authorized launch record.
|
|
Hashes provide comparison and evidence binding, not permission or proof of
|
|
safe behavior. Permission revocation still follows D3 and managed-action
|
|
checks; an old launch snapshot is not a right to keep revoked authority.
|
|
|
|
## 3. State is work data, not authority
|
|
|
|
Proposed separation:
|
|
|
|
| Information | How it changes |
|
|
|---|---|
|
|
| Desired mission, task, membership, and policy | Authorized, versioned changes. Workers cannot elevate grants through progress notes. |
|
|
| Observations and decisions | Append-only events with actor, scope, source, and evidence. Corrections reference the earlier event. |
|
|
| Current task/project/workspace status | A replaceable current view built from accepted changes, with revision checking and a named writer. |
|
|
| Chat transcript | Conversation history, not authoritative task completion or permission. |
|
|
| Files produced by work | Mutable working files plus immutable evidence references where needed. A file alone does not prove acceptance. |
|
|
|
|
Prefer one authoritative copy of project decisions. A launch records the
|
|
project revision it saw. Owner Q25 requires reconciliation of affected work
|
|
after approved plan changes; an old conversation cannot overrule a newer
|
|
approved decision. Revision delivery, impact detection, and stale-action
|
|
rejection still need design and tests, including on Resume.
|
|
|
|
Candidate work states, still for review: `proposed`, `ready`, `active`,
|
|
`blocked`, `ready-for-review`, `accepted`, `abandoned`. Completion reported by
|
|
an execution can move work toward review, never silently to acceptance by its
|
|
own author. Owner Q7 permits an authorized independent reviewer to accept
|
|
routine tasks against agreed criteria. Owner-controlled implementation
|
|
checkpoints remain separate. Task states, session lifecycle, and execution
|
|
outcomes are different fields.
|
|
|
|
Owner Q8: default Abandon ends this agent's selected assignments. It does not
|
|
cancel the underlying shared mission/task or another agent's involvement.
|
|
Underlying work remains available for reassignment unless separately cancelled
|
|
with authority. Selection preserves source IDs and dependency evidence;
|
|
unselected records remain present with explicit status. Owner Q9 requires an
|
|
explicit assignment change before undertaking unfinished prerequisite work.
|
|
Under Q7, an authorized coordinator can approve that change within the plan
|
|
without a human prompt. No silent expansion by the executing worker.
|
|
Cross-project selection remains excluded in the initial proposal unless
|
|
separately authorized and designed.
|
|
|
|
Two writers updating the same task need an expected revision and conflict
|
|
response. Avoid last-writer-wins. A registration change or permission
|
|
revocation during execution must be enforceable at subsequent managed actions,
|
|
not only checked once at launch. Owner Q14 requires stopping the affected
|
|
workspace executions and blocking further actions there while leaving other
|
|
independently authorized work running. Global agent disable is a separate
|
|
operation. In-flight effects require reconciliation; stop is not undo. Exact
|
|
revocation propagation, stopping, and enforcement mechanisms remain D3/D7.
|
|
|
|
### 3.1 Delegated autonomy, owner Q7
|
|
|
|
A software factory needs autonomous decisions within an established goal and
|
|
plan. Delegated agents may decompose work and make non-destructive decisions
|
|
that advance that goal without seeking user approval each time, provided they
|
|
stay within their authority and the plan. An authorized independent reviewer
|
|
can accept routine task results against agreed criteria. User approval still
|
|
controls declared phase boundaries, plan deviations, and protected operations.
|
|
|
|
Proposed evidence for each delegated decision: deciding actor/execution,
|
|
approved plan revision, delegation reference/limits, affected task/assignment,
|
|
reason, and observed result or follow-up evidence. Record the actual delegated
|
|
authorizer, not a fictitious owner approval. The acting agent's claim that an
|
|
action is harmless is not proof that it is authorized or within scope.
|
|
|
|
Exact permitted actions, risk checks, and delegation revocation are still D3
|
|
and D11. This ruling does not authorize implementation during this interview,
|
|
unbounded task expansion, or self-approval of a worker's delivery.
|
|
|
|
### 3.2 Approved plan changes, owner Q25
|
|
|
|
Pause affected work when an approved goal, plan, or acceptance criterion changes.
|
|
Account for actions already underway rather than assuming they can be undone.
|
|
An authorized coordinator may reconcile and adjust assignments within delegated
|
|
limits; independently valid, unaffected work may continue. Resume affected work
|
|
only after reconciliation. Escalate beyond delegated authority or when safe
|
|
resolution cannot be established. An unapproved proposal does not replace the
|
|
approved plan or grant authority to continue under new criteria.
|
|
|
|
Proposed transition evidence: old/new approved revision references, change
|
|
approval, affected assignments/dependencies, outstanding-action disposition,
|
|
coordinator authority, and resume/reassignment decision. Add evidence rather
|
|
than rewriting original launch inputs or historical action records. Exact
|
|
fields, publishing/notification paths, impact detection, and stale-revision
|
|
fencing remain to be specified under D2/D8/D15.
|
|
|
|
This differs from a non-blocking shared-configuration mismatch notice under
|
|
Q21. An affected assignment must not continue solely because a Fresh launch
|
|
has not been requested. Q25 does not require automatic Fresh for every plan
|
|
change; context reconciliation and controlled replacement remain distinct.
|
|
|
|
## 4. Accountability and action evidence
|
|
|
|
The agent identity remains `code-be-01`. Execution metadata answers which
|
|
of its sessions acted, on whose request, within which scope and authority.
|
|
This is useful even when no cross-workspace mistake occurred.
|
|
|
|
Distinguish five things:
|
|
|
|
1. Requester: the authenticated human/service asking for work.
|
|
2. Performer: the reusable agent and the particular execution/session.
|
|
3. Producer: the launcher, tool gateway, adapter, or external receipt source
|
|
that observed and recorded an event.
|
|
4. Subject: project/workspace, assignment/task, and target of the action.
|
|
5. Authority: policy and membership revisions plus any required approval.
|
|
|
|
### 4.1 Proposed event envelope
|
|
|
|
```json
|
|
{
|
|
"eventVersion": 1,
|
|
"eventId": "event-002",
|
|
"eventType": "action.finished",
|
|
"executionId": "exec-003",
|
|
"sessionId": "session-002",
|
|
"agentId": "code-be-01",
|
|
"projectId": "mosaic-stack-v2",
|
|
"workspaceId": "sessions",
|
|
"assignmentId": "assignment-014",
|
|
"taskId": "task-014",
|
|
"actionId": "action-001",
|
|
"causedByEventId": "event-001",
|
|
"sequence": 2,
|
|
"recordedAt": "2026-09-06T00:00:00Z",
|
|
"producer": "managed-file-tool",
|
|
"operation": "file.write",
|
|
"target": { "relativePath": "notes/result.md" },
|
|
"authorityRef": "decision-003",
|
|
"outcome": "succeeded",
|
|
"evidenceRefs": ["receipt-001"]
|
|
}
|
|
```
|
|
|
|
This is a shape example, not a real receipt. `decision-003` would bind the
|
|
requester's authenticated identity, full launch scope, current permission
|
|
check, claim generation, and any owner approval. The producer fills those
|
|
fields from trusted execution context; it does not accept agent-supplied
|
|
scope or success statements as evidence. Evidence references must resolve to
|
|
accessible immutable records with defined content and provenance.
|
|
|
|
### 4.2 What counts as an action
|
|
|
|
Proposed minimum classes to enumerate before implementation:
|
|
|
|
- Launch/resume/fresh/replacement, refusals, exits, and interrupted executions.
|
|
- Mission/task assignment, claim, state change, acceptance, and abandonment.
|
|
- Registration/permission changes and explicit owner approvals.
|
|
- Managed file/tool invocations, external requests, message send/delivery,
|
|
repository integration, and release operations when these are permitted.
|
|
- Usage observations with provider evidence or an explicit estimate label.
|
|
|
|
Not all of these exist as managed operations today. Adding an enum does not
|
|
create interception or enforcement. D11 decides the first guaranteed set.
|
|
|
|
### 4.3 Intent, effect, and result
|
|
|
|
Proposed behavior for managed actions with side effects:
|
|
|
|
1. Persist authorized intent with action ID, target scope, and expected state.
|
|
2. Perform the action through the enforcing component.
|
|
3. Persist the observed result and evidence, linked to the intent.
|
|
|
|
Owner Q19: if required intent cannot be persisted, refuse before the action.
|
|
If the action may have happened but its result cannot be recorded, block the
|
|
affected execution and treat the outcome as unknown. Other executions may
|
|
continue only if their own required recording still works. Do not retry
|
|
blindly, claim the action never happened, or invent a success receipt.
|
|
|
|
Owner Q18: an authorized agent/service may investigate using non-destructive
|
|
checks within delegated authority. Dependent work resumes only after evidence
|
|
resolves the result; otherwise escalate. The original uncertain action must
|
|
not be repeated merely as a test. Recovery checks must also satisfy their
|
|
applicable permissions and recording requirements, not bypass an audit outage.
|
|
|
|
Proposed mechanics: distinguish unknown state from observed failure; after
|
|
recording is restored, append recovered evidence with its actual observation
|
|
and recovery times. Do not overwrite prior events or claim that a record was
|
|
written during an outage when it was not. The exact out-of-band failure signal
|
|
and recovery receipt format remain D8/D9. External effects and local logging
|
|
are not one atomic write.
|
|
|
|
Use external request/receipt IDs and idempotency support where available.
|
|
Without them, an interrupted action may require human reconciliation. A zero
|
|
shell exit code only proves that the invoked process reported success; it
|
|
does not prove every intended external effect. Clocks are informational;
|
|
per-execution sequence and causal references establish local ordering without
|
|
claiming a global order across machines.
|
|
|
|
### 4.4 Coverage and trust limits
|
|
|
|
A launcher can record process lifecycle. It cannot automatically observe every
|
|
file write, child process, network request, or manually entered shell command
|
|
inside a running program. A transcript is useful evidence but is neither a
|
|
complete action audit nor a trusted authority source.
|
|
|
|
Each adapter must declare its observable/enforceable operation set. Record
|
|
coverage with the execution, for example lifecycle-only versus managed-tool
|
|
events. If a requested audit guarantee exceeds support, refuse that launch
|
|
mode or require a separately approved limited mode. Never report full coverage
|
|
just because the process has an execution ID.
|
|
|
|
No claim of tamper-proof logging follows from append-only application code.
|
|
A worker that can write the evidence directory could forge or remove records.
|
|
A trusted producer outside the worker's write permissions is a proposed
|
|
requirement for trustworthy managed-action receipts. Storage access and
|
|
failure tests must establish it; the current broad data-root mount does not.
|
|
|
|
Owner Q13 chose concise action records: actor and project/workspace/session/
|
|
task, operation, target, authorization, outcome, and evidence references.
|
|
Detailed evidence is separate and access-controlled; do not copy full request/
|
|
response content into every action event. Neither metadata nor evidence may
|
|
contain credentials. Exact safe field lists and evidence retention remain open.
|
|
|
|
Never put credentials, auth headers, raw environment contents, or arbitrary
|
|
unfiltered tool payloads in new audit metadata. Use operation-specific safe
|
|
fields and protected evidence references. Redaction failures must not leak
|
|
secrets through diagnostics. Define who may view sensitive task/file/message
|
|
content; workspace RBAC must apply to audit queries too. Existing transcripts
|
|
and run outputs need a separate privacy assessment, not retroactive claims.
|
|
|
|
## 5. Messages and concurrent execution
|
|
|
|
Proposed message envelope: version, message ID, sender identity/scope,
|
|
authenticated producer, destination agent/project/workspace, optional exact
|
|
session/execution/assignment, message kind, causal/reply reference, creation
|
|
and expiry times, and body reference with visibility rules.
|
|
|
|
User-addressed workspace messages may follow the workspace's current authorized
|
|
session under a stated policy. Execution results and approvals bind to their
|
|
exact execution/assignment revision. A late result must not become an
|
|
instruction or approval for replacement work. Ambiguous destinations refuse;
|
|
transport delivery and task acceptance are separate receipts.
|
|
|
|
Owner Q12 permits shared mission/task/decision records and authorized evidence
|
|
within a workspace, not blanket access to other agents' conversations. A
|
|
transcript needs a separate read permission or explicit authorized handoff.
|
|
Neither a shared workspace nor a read grant automatically injects that chat
|
|
into another session. Fresh's old-chat exclusion still applies.
|
|
|
|
Default active limit is one session for each agent/project/workspace tuple.
|
|
Owner Q11: an interactive Resume that finds the session already running must
|
|
state the conflict and offer to connect, never automatically connect, replace,
|
|
or create a duplicate. The owner may already be connected elsewhere. Q15:
|
|
a service receives a machine-readable already-active result with the existing
|
|
execution identity and must explicitly request connection or another authorized
|
|
operation; it does not receive an unanswered interactive prompt.
|
|
|
|
Owner Q16: one controlling interface connection at a time. Other permitted
|
|
connections may observe. Taking control is explicit and requires appropriate
|
|
authority; observation does not grant control. Proposed connection records
|
|
bind client identity and mode to the exact session/execution. Control-transfer
|
|
mechanics must prevent a stale controller from submitting commands after
|
|
transfer. Ordinary scoped inter-agent messages are not an implicit controller
|
|
connection; their admission/attribution rules remain distinct.
|
|
|
|
Owner Q17: Fresh requests controlled replacement rather than requiring a
|
|
separate stop command. Stop admitting new actions, preserve checked work state,
|
|
and settle or identify unfinished effects. Start Fresh only after safe
|
|
replacement is established; otherwise stop and report. This is not permission
|
|
to replay uncertain actions or import a conversation summary as checked state.
|
|
Adapter attachment, control transfer, stop/recovery, and durable claim behavior
|
|
must be measured and tested before claiming support.
|
|
|
|
User tuning changes a limit, not task ownership. Several agents can work in
|
|
one workspace but shared files/tasks still need coordination. Proposed active
|
|
claims have a unique ID and increasing generation. Managed writers reject
|
|
stale generations, so an old process cannot continue after its replacement.
|
|
Timeout alone is not proof that an old process has stopped, especially for
|
|
unmanaged external actions. Recovery policy is D7.
|
|
|
|
Budgets and automatic scaling are deferred requirements. Do not place invented
|
|
budget defaults into the first schema or imply that recorded usage alone
|
|
provides a hard spending limit. The limit scope, approval rights, usage delay,
|
|
and response to overruns need a later planning decision.
|
|
|
|
## 6. Storage constraints, not a migration plan
|
|
|
|
Keep `<dataRoot>/runs/` as canonical write-once execution evidence. Workspace
|
|
views reference evidence there rather than duplicating or rewriting it.
|
|
Existing `result.json` records remain untouched. A future version may extend
|
|
the record contract through new records and readers, never by rewriting old
|
|
runs. New events are append-only and terminal results are written once.
|
|
|
|
Proposed organization to discuss: projects own workspace metadata/work state;
|
|
workspace-and-agent scope owns session references; execution IDs own launch
|
|
inputs and receipts. Whether session bytes live in workspace subdirectories
|
|
or remain under `<dataRoot>/sessions/` is D6. Logical ownership does not force
|
|
a particular filesystem layout. No new storage path is approved by implication.
|
|
|
|
Every persistent file class needs an owner, writer, reader policy, retention
|
|
rule, and recovery rule. Shared agent settings are not a second system config.
|
|
Keep secrets in runtime credential storage, not project/workspace metadata.
|
|
Do not treat a project directory as permission to edit reviewed role authority.
|
|
|
|
Current `prune` receipts and data-root `reset` behavior still govern existing
|
|
records. The new design must specify dangling references after pruning,
|
|
metadata export, reset scope, and recovery before migration. It does not
|
|
silently protect new records from reset or authorize a new deletion path.
|
|
A safe rollback cannot depend on editing historical evidence.
|
|
|
|
### 6.1 Workspace retirement and legacy adoption
|
|
|
|
Owner Q23: closing a workspace retires it from active work. Stop its active
|
|
work safely, retain files/history, and prevent ordinary new launches until it
|
|
is reopened. This is not deletion or an implicit cancellation of every mission.
|
|
Outstanding actions and assignment dispositions need reconciliation under the
|
|
existing replacement/recovery rules. Reopening must check current authority;
|
|
it must not automatically restore a revoked membership. Those exact transition
|
|
records and reopening behavior are still to be designed and reviewed.
|
|
|
|
Owner Q24: preserve existing unscoped sessions as legacy records. Adopting one
|
|
requires explicit reviewed project/workspace assignment. Do not guess from
|
|
agent or directory names, place everything in a default project automatically,
|
|
or rewrite old execution evidence to pretend it originally had new scope.
|
|
|
|
Proposed adoption evidence: authorized requester/reviewer, legacy source ID and
|
|
non-secret content identity, destination agent/project/workspace, membership
|
|
checks, and a new mapping/adoption receipt. This is proposed metadata, not an
|
|
approved migration API. Ambiguous lineage or missing access refuses adoption.
|
|
Old conversation content remains historical and is not loaded by Fresh.
|
|
|
|
Actual storage paths, retention intervals, retirement state transitions,
|
|
reopening, recovery after prune/reset, and rollback remain D6. Closing does
|
|
not exempt records from separately authorized repository retention/reset rules,
|
|
and no new deletion tool is approved by the retirement decision.
|
|
|
|
## 7. Open decisions
|
|
|
|
| ID | Owner decisions or open question | Remaining proposal or engineering work |
|
|
|---|---|---|
|
|
| D1 | Scope/hierarchy resolved in Q1/Q5: project owns N workspaces, workspace has exactly one project; a workspace mission has at most one parent project mission or stands alone within its owning scope. Dependencies are not parents. | Formal field definitions and mission lifecycle/completion rules remain to be specified; no multiple-parent ownership. |
|
|
| D2 | Recovery content resolved in Q6: assigned mission/criteria, tasks/status, approved decisions, dependencies/blockers, verified-result references, labelled proposed next step and unverified notes; no old chat/automatic summary. | Exact record representation and publisher authority remain schema details; routine acceptance follows Q7/D15. |
|
|
| D3 | Q2/Q3/Q14 resolve bounded delegation, scoped visibility, and affected-execution revocation. Q26 chooses standard scope permission roles with per-registration narrowing; they do not redefine agent identity or expand ceilings. | Exact role catalog/grants, record fields, actor authentication, propagation, and stopping need schemas/enforcement. Role names were illustrative; shared role authority remains reviewed-commit controlled. |
|
|
| D4 | Resolved by Q4 clarification A: create and announce the initial conversation automatically on genuine first use, without an offer. Later default launches resume; missing/damaged established sessions and ambiguity are errors. | Record initial creation distinctly from resume. Specify reliable first-use history and recovery checks under D6/D8; do not infer first use from a missing transcript. |
|
|
| D5 | Default behavior resolved in Q8/Q9: end only this agent's selected assignments on Abandon; undertaking unfinished prerequisites needs an explicit authorized assignment change. | Preserve underlying work/history and other assignments. Q7 allows within-plan delegated authorization without asking the user each time. Fields and interruption sequencing remain open. |
|
|
| D6 | Q23 retires closed workspaces safely while retaining files/history and blocking ordinary launches until reopened. Q24 requires explicit reviewed legacy adoption, not inferred membership. | Exact layout, lifecycle/reopening, mapping records, retention intervals, prune/reset reference handling, and migration rollback remain engineering work. Preserve old evidence. |
|
|
| D7 | Q11/Q15 require conflict/offer for users and already-active result for services; connection is explicit. Q16 permits one controller plus authorized observers. Q17 requests controlled Fresh replacement, refusing unsafe overlap. | Connection/claim schemas, stale-controller rejection, adapter support, stopping, crash recovery, and concurrency tuning remain engineering work. Timeout alone is not proof an execution stopped. |
|
|
| D8 | Q18 permits delegated non-destructive investigation of unknown outcomes, evidence-based continuation, and escalation when unresolved; no blind replay. Exact atomicity/retry guarantees remain open. | Unique requests/actions, linked intent/result/recovery evidence, actual observation times, and explicit unknown status; no blanket exactly-once promise. |
|
|
| D9 | Q19 blocks affected executions when required audit recording fails; independently recordable work may continue. Effects with missing result evidence follow Q18 recovery. Storage integrity/trust and failure reporting details remain open. | Refuse before effects; never bypass audit requirements for recovery checks. A trusted writer and out-of-band outage signal need design and tests. |
|
|
| D10 | Partly resolved by R16-R17: current approved SOUL at launch, stable per-execution inputs, and cross-interface mismatch notice. Credential sharing and other configuration lifecycle details remain open. | Preserve the owner ruling in section 2.1; reconcile #50 before coding. Exact fingerprint and notification mechanics move to D16. |
|
|
| D11 | Q10 permits unassigned conversation/inspection and recorded change assignments. Q13 separates concise metadata from controlled evidence. Q27 A requires command-invocation records with enforced limits, not separate tracing of every internal file/network effect. | Complete taskless/read/chat fields, command/event schemas, evidence allowlists, and enforcement. No isolation, credential, recording, revocation, or recovery gate is waived. |
|
|
| D12 | Phase-2 inspection of documentation extracted from the pinned image establishes documented exact-session selection, RPC/JSON events, queue/abort distinctions, and no built-in sandbox. Current Mosaic adapter uses plain print/native TUI instead. | No live RPC, hook, controller, or isolation test yet. Investigate the enforcing integration and failure behavior; host Pi 0.85.1 is not evidence for runtime 0.84.4. |
|
|
| D13 | Q12/Q13 separate shared work records, transcript grants, and controlled audit evidence. Q22 shares only designated general preferences by default and supplies personal/project context only where authorized and relevant. | Exact context classification/grants and enforcement remain to be specified. Read permission does not imply automatic transcript loading; replace blanket global user-context injection only through approved implementation. |
|
|
| D14 | Jason answered Q28 A: a Mosaic-controlled terminal backed by Pi is acceptable. R34 records this; native UI parity is not an initial requirement. | Runtime/control/input schemas and shared operations now form an owner-review candidate. No UI implementation, engine replacement or safety waiver follows. |
|
|
| D15 | Q7 allows authorized independent routine acceptance and delegated non-destructive within-plan decisions. Q25 pauses affected work after approved plan changes, permits delegated reconciliation, and lets independently valid unaffected work continue. | Preserve owner checkpoints and plan-deviation/protected-operation approval. Readiness writers, impact detection, stale-action rejection, conflicts, and change evidence remain open; workers do not self-accept. |
|
|
| D16 | Q20 covers shared behavior-affecting config: SOUL, instructions, applicable enabled skills, harness/model settings, and role config, excluding credentials/chat/task progress. Q21 requires automatic non-blocking notices and on-demand checking. | Exact hash/dependency fields, encoding, snapshot verification, delivery/acknowledgement, and frequency remain technical details. Separate comparable config from whole launch identity; no silent refresh. |
|
|
|
|
The owner authorized a grill-me interview on 2026-09-06. Ask each round's
|
|
questions only after their prerequisites are settled. Record answers without
|
|
silently resolving qualifications. Independent analysis later may add questions
|
|
or reject recommendations, not overwrite owner rulings.
|
|
|
|
### 7.1 Owner interview record, round 1, 2026-09-06
|
|
|
|
Source: Jason's answers in pi session
|
|
`01a06e48-0718-71f2-a889-c263c4800fb9`. Interview Q numbers are separate from
|
|
D decision IDs. This records partial alignment, not full design approval.
|
|
|
|
- Q1, D1: "c. Glad you thought of that answer too." Option C permits both
|
|
project and workspace missions with explicit links, including standalone
|
|
workspace missions within project scope. Each has one authoritative owner.
|
|
- Q2, D3: "B". User delegates bounded authority for system registration and
|
|
assignments. Outside-limit actions require approval, not agent self-grants.
|
|
- Q3, D3: "B". Project membership gives shared project information plus
|
|
explicitly permitted workspaces, not visibility into all workspace content.
|
|
- Q4, D4, verbatim: "B, I'm not sure the offer is necessary. A declaration of
|
|
initial conversation instantiation is good, but an offer on a non-existent
|
|
item is unnecessary." The no-offer preference is clear. First-creation
|
|
behavior needs a focused clarification before the command rules are settled.
|
|
|
|
Q4 clarification, 2026-09-06: Jason answered "A" to automatic first creation
|
|
with an announcement and no offer. Later launches resume by default; Fresh
|
|
explicitly starts a new conversation. Missing or damaged previously established
|
|
conversations are errors rather than first-use cases. This resolves the
|
|
qualification above without rewriting the original answer.
|
|
|
|
Next: continue mission relationships, Fresh recovery, completion authority,
|
|
and work-selection decisions. Do not treat an unanswered question or an
|
|
interview recommendation as an owner decision.
|
|
|
|
### 7.2 Owner interview record, round 2, 2026-09-06
|
|
|
|
Source: Jason's answers in the same pi session as round 1. Previous answers
|
|
remain recorded above; this is not full plan/schema approval.
|
|
|
|
- Q5, D1: A, with the owner qualification that parent:child relationships
|
|
stay strictly one-to-many. A project has N workspaces; each workspace requires
|
|
exactly one parent project. A workspace mission has at most one parent
|
|
project mission as proposed in Q5. Dependencies are different from parents.
|
|
- Q6, D2: "agreed" to the full proposed Fresh/Continue information set:
|
|
mission/criteria, assigned tasks/status, approved decisions, dependencies,
|
|
blockers, verified-result references, labelled proposed next step, and
|
|
labelled unverified notes. Old chat and automatic summaries stay out.
|
|
- Q7, D15/D3: B. Authorized reviewers may accept routine tasks. Jason clarified
|
|
that a software factory needs autonomous goal-directed decisions, layered
|
|
decomposition, and delegated non-destructive actions within the established
|
|
plan without user interaction each time. Deviation does not inherit that
|
|
authority. The agreed user implementation checkpoints remain in place.
|
|
- Q8, D5: A. Default Abandon ends this agent's selected assignments; missions
|
|
and tasks remain for reassignment unless separately cancelled with authority.
|
|
- Q9, D5: B. Show an unfinished prerequisite and obtain an explicit assignment
|
|
change before doing it; include relevant dependency information, not silent
|
|
extra work. Read with Q7: the authorizer may be a delegated coordinator, not
|
|
necessarily the user. Record the assignment change and its actual authority.
|
|
|
|
Next questions concern review separation with reused agent identities,
|
|
unassigned interaction, revocation, concurrency conflicts, and audit behavior.
|
|
No downstream recommendation is settled by the answers above.
|
|
|
|
### 7.3 Owner interview record, round 3, 2026-09-06
|
|
|
|
Source: Jason's answers in the same pi session as rounds 1-2. No full schema
|
|
approval or implementation authorization is implied.
|
|
|
|
- Q10, D11: A. Permit conversation and authorized workspace inspection before
|
|
a mission/task exists. Requests to change things become explicit recorded
|
|
assignments without requiring a lengthy setup process.
|
|
- Q11, D7/D14: owner correction to the automatic-connect recommendation.
|
|
State the active-session conflict and offer connection because the user may
|
|
already be connected and have forgotten. Owner example, verbatim:
|
|
"I see that session is aalready active. Would you like to connect?"
|
|
No automatic connection or duplicate launch. Non-interactive service
|
|
response was not specified by this answer and remains open.
|
|
- Q12, D13: B. Shared work records and permitted evidence, but another agent's
|
|
conversation needs a separate permission or explicit handoff. Read access
|
|
does not imply automatic loading into the receiving conversation.
|
|
- Q13, D11/D13: A. Concise action metadata and evidence references; detailed
|
|
evidence separately controlled, not copied wholesale into each audit event.
|
|
Credentials must not appear in either.
|
|
- Q14, D3/D7: A. Workspace membership removal stops affected executions and
|
|
blocks further actions there; other independently authorized work continues.
|
|
Global agent disable is separate. Reconcile effects already in flight.
|
|
|
|
Next: clarify service-side conflict handling and decide connection ownership,
|
|
replacement, uncertain-action recovery, and audit-failure behavior. Technical
|
|
capability checks must supply facts, not be questions the owner must guess at.
|
|
|
|
### 7.4 Owner interview record, round 4, 2026-09-06
|
|
|
|
Source: Jason answered A to each of Q15-Q19 in the same pi session as prior
|
|
rounds. These settle behavior, not unmeasured runtime capabilities.
|
|
|
|
- Q15, D7/D14: service receives an already-active result with execution identity
|
|
and explicitly requests any authorized connection/next operation. No automatic
|
|
attachment or interactive offer waiting for a nonexistent human response.
|
|
- Q16, D7: one controlling interface connection; other authorized connections
|
|
may observe, with explicit control transfer and conversation access checks.
|
|
- Q17, D7: Fresh requests controlled replacement. Stop new actions, preserve
|
|
checked state, settle or identify unfinished actions, and only replace safely.
|
|
If safety cannot be established, stop/report rather than overlap executions.
|
|
- Q18, D8: delegated authorized agents/services may investigate unknown results
|
|
with non-destructive checks. Resume dependent work only on resolving evidence;
|
|
otherwise escalate. Repeating the uncertain action is not a recovery test.
|
|
- Q19, D9: audit-recording failure blocks affected executions. Other work may
|
|
continue only when its required recording works. Refuse before effects, and
|
|
reconcile effects already issued whose results could not be recorded.
|
|
|
|
Next: configuration fingerprint scope/notices and workspace retention/migration
|
|
choices. Exact schema and runtime mechanisms remain unapproved until examined;
|
|
no implementation or broader phase advancement follows from these answers.
|
|
|
|
### 7.5 Owner interview record, round 5, 2026-09-06
|
|
|
|
Source: Jason answered Q20 B, Q21 B, Q22 B, Q23 A, Q24 A in the same pi session.
|
|
These are behavior decisions, not permission to change runtime configuration.
|
|
|
|
- Q20, D16: shared behavior-affecting configuration fingerprint, not SOUL only.
|
|
Include SOUL, shared instructions, applicable enabled skill versions,
|
|
harness/model settings, and role config. Exclude credentials, chat, and task
|
|
progress; revocation remains an enforcement event, not merely a notice.
|
|
- Q21, D16: automatic non-blocking notices plus on-demand checks; keep mismatch
|
|
visible without repeated interruption or automatic restart.
|
|
- Q22, D13: designated general preferences may be shared; personal and project
|
|
information is scoped by authorization and relevance, not a blanket profile.
|
|
- Q23, D6: close means retire from active work, stop safely, retain files and
|
|
history, and block normal launches until reopened. Cleanup/deletion is separate.
|
|
- Q24, D6: preserve legacy sessions, then explicitly review and assign their
|
|
project/workspace on adoption. Do not infer membership or auto-place them.
|
|
|
|
Next behavioral questions concern changes to an approved plan during execution
|
|
and how scope permissions are expressed. Engineering questions remain open for
|
|
fact-finding and schema review, not guesses or silent implementation decisions.
|
|
|
|
### 7.6 Owner interview record, round 6, 2026-09-06
|
|
|
|
Source: Jason answered Q25 A and Q26 B in the same pi session.
|
|
|
|
- Q25, D15: pause affected work after an approved plan change and reconcile
|
|
underway effects and assignments. A delegated coordinator can adjust work
|
|
within its limits; unaffected work may continue. Escalate beyond authority
|
|
or when safe resolution is unavailable, rather than finish obsolete work.
|
|
- Q26, D3: standard scope roles with registration-specific narrowing. A scope
|
|
role describes permission there, not agent identity/type. Exact names and
|
|
grant lists remain subject to review; no expanded agent ceiling is implied.
|
|
|
|
### 7.7 Interview checkpoint, confirmation pending
|
|
|
|
Q1-Q26 have answers, with qualifications retained above, including the explicit
|
|
Q4 correction. No additional owner-behavior question is currently ready. Ask
|
|
Jason to confirm shared understanding of R1-R32; do not equate these individual
|
|
answers with interview completion or approval of the whole schema.
|
|
|
|
D1-D16 retain unresolved engineering questions: fields and record lifecycles,
|
|
authorization/enforcement, work-state revisions and recovery, adapter/session
|
|
capabilities, observable action coverage, storage/migration, configuration
|
|
hashing/notification, and concrete command/UI contracts. Detailed design and
|
|
fact-finding need next-phase authorization. Technical findings that introduce
|
|
new behavioral tradeoffs come back to the owner, not silent design decisions.
|
|
|
|
No mapping, independent gap analysis, implementation, migration, commit, push,
|
|
or issue closure follows automatically from this interview checkpoint.
|
|
|
|
### 7.8 Owner confirmation of intended behavior, 2026-09-06
|
|
|
|
Following round 6 and the assistant's behavior summary, Jason replied:
|
|
"That looks correct." This confirms shared understanding of intended behavior
|
|
represented by R1-R32. Section 7.7 records the preceding pending checkpoint;
|
|
its confirmation request is now satisfied.
|
|
|
|
This confirmation does not approve exact schemas, establish runtime support,
|
|
or resolve the remaining engineering branches. Phase 2, detailed design and
|
|
read-only technical investigation, still requires explicit authorization.
|
|
Mapping, independent gap analysis, implementation, migration, commit, push,
|
|
and issue closure remain outside current authority.
|
|
|
|
### 7.9 Phase-2 authorization and first investigation, 2026-09-06
|
|
|
|
Jason answered yes to detailed records, permissions, commands, and audit
|
|
guarantees with read-only technical investigation. This supersedes the pending
|
|
authorization recorded in section 7.8. Mapping, implementation, migration,
|
|
publication, and issue closure remain outside authority.
|
|
|
|
The linked phase-2 candidate records tool-free source-analysis run
|
|
`r-20260906T024609Z-68ee7f`, pinned image/document identities, author
|
|
qualifications, proposed common types, operation rules, and remaining work.
|
|
The run is investigative output, not independent gap analysis or approval.
|
|
|
|
Q27 is now ready for the owner: accountable command invocation with enforced
|
|
limits and controlled evidence, or separately attributable internal file/network
|
|
effects before command execution is enabled. Recommendation A is recorded in
|
|
the candidate; no answer or added approved requirement is inferred.
|
|
|
|
### 7.10 Owner Q27 ruling, 2026-09-06
|
|
|
|
Jason answered "Q27: A". Initial managed command auditing records the authorized
|
|
invocation, actor/scope/assignment, enforced filesystem/network limits,
|
|
start/end, outcome, and controlled evidence references. It does not require
|
|
separate enumeration of every internal file read/write or network operation.
|
|
|
|
This settles the question left pending in section 7.9 and adds R33. Workspace
|
|
isolation, credential protection, fail-closed recording, revocation, and
|
|
uncertainty recovery remain required. Exact schemas and enforcing mechanisms
|
|
are still phase-2 work; this is not implementation or mapping approval.
|
|
|
|
### 7.11 Resumed goal and Q28 frontier, 2026-09-06
|
|
|
|
After reboot recovery, Jason explicitly set the phase-2 goal and repeated it
|
|
with --wait-timeout 60. This resumed the existing planning assignment, not a
|
|
second goal or an implementation mandate. No exposed goal runtime API or
|
|
automatic timeout/wake has been verified; CURRENT records file-based state.
|
|
|
|
The linked phase-2 package now has checked command/record schemas, negative
|
|
fixtures, explicit calendar/path checks, restricted-domain fingerprint vectors,
|
|
and permission/reference/lifecycle/storage and #50 compatibility proposals.
|
|
These are author design checks, not independent review or runtime enforcement.
|
|
|
|
Q28 is ready: may the first managed release use a Mosaic-controlled terminal
|
|
client, or must it preserve the native Pi terminal with full control mediation?
|
|
Recommendation A is recorded in the package. No answer is inferred. Runtime
|
|
execution/control/input-routing and command artifact contracts depend on that
|
|
choice; manual owner response is the next resumption condition.
|
|
|
|
### 7.12 Owner Q28 ruling and goal clarification, 2026-09-06
|
|
|
|
Jason answered "Q28: A". R34 records the managed-terminal ruling. The author
|
|
continued P2-5/P2-6: closed runtime/control/artifact shapes, synthetic rule checks,
|
|
and the owner-review package. The prior Q28 wait in section 7.11 is historical.
|
|
|
|
Jason also clarified that /goal came from the separate ~/.mosaic deployment and
|
|
is not implemented in this development environment. Continue the same goal through
|
|
the existing repository records; no extension installation or active wait timeout
|
|
is requested. Goal completion still requires Jason's phase-2 verdict.
|
|
|
|
[Owner review and D1-D16 reconciliation](foundation-v1-candidate/REVIEW.md) is the
|
|
current candidate index. Runtime security/enforcement and later phase approvals
|
|
remain separate from the author checks. Earlier open-detail descriptions above
|
|
are preserved as the interview/design history, not claims of implemented behavior.
|
|
|
|
## 8. Trace checklist for the later independent analysis
|
|
|
|
The non-authoring agent must trace, at exact code and plan revisions:
|
|
|
|
- Request authentication -> registrations -> effective permissions.
|
|
- Workspace selection -> authoritative state -> context manifest -> program.
|
|
- Resume/Fresh choice -> exact session -> unique execution -> active claim.
|
|
- Existing-session conflict -> authorized connection -> sole controller or
|
|
observer -> explicit control transfer -> stale-controller refusal.
|
|
- Canonical configuration -> stable launch inputs/hash -> running execution
|
|
status -> shared comparison -> TUI/GUI/WUI notice -> authorized relaunch.
|
|
- Assignment -> action authorization -> side effect -> intent/result evidence.
|
|
- State update -> revision conflict handling -> visible task/project status.
|
|
- Message address -> permission check -> execution-aware delivery -> receipt.
|
|
- Exit/crash -> uncertain effects -> recovery -> replacement permission.
|
|
- Audit query -> scoped visibility -> retention/prune and recovery behavior.
|
|
|
|
For each connection: cite the actual implementation or explicitly record it
|
|
as missing; cite the approved plan requirement; name the writer/enforcer and
|
|
the receipt; identify unsupported guarantees and a reproducible test. Separate
|
|
implementation gaps from holes or contradictions in the plan. Do not fix the
|
|
candidate during review or substitute the map author's assurances for evidence.
|
|
|
|
The independent report and Archify maps are later deliverables. This file
|
|
contains no independent verdict and no assertion that these controls exist.
|