Watch
2
Mine warded-agent history for regression tests and review doctrine #934
Closed
opened 2026-07-10 04:02:39 +00:00 by coilyco-ops
·
4 comments
No Branch/Tag specified
main
release
docs/readme-agents-surface
fix/pr-repair-verb-lookup
aos/claude/aw85-docs-bands
aos/claude/aw85-declare-band
aos/claude/bk79-autonomy-label-scope
fix/gofmt-runner
chore/umbra-rename
aos/claude/mg96-fm
claude/agents-temp-clone-note
aos/claude/qa57
remove-format-exec-gate-refusal
fix/ward-1649-ci-fixture
fix/detached-ci-exec
issue-1626-generic-agent-broker
issue-1177
issue-1160
issue-1501
ward-salvage/ward-12486bc7
ward-salvage/ward-babfa2ba
ward-salvage/ward-a832df03
ward-salvage/ward-85c795b2
ward-salvage/ward-b87f8859
issue-1484
ward-salvage/ward-86b72dcf
ward-salvage/ward-b7b26d1d
recovery/2026-07-28-triaged-branch-archive
recovery/2026-07-27-local-work
issue-1584
issue-1571
issue-1524
ward-salvage/ward-3800c2d1
ward-salvage/ward-70175da3
ward-salvage/ward-bcbfef78
issue-1298
issue-737-signoz-deferred
ward-salvage/ward-c6aa5da9
ward-salvage/ward-94dd7346
ward-salvage/ward-58aa3fe3
ward-salvage/ward-ff6c509f
ward-salvage/ward-e80f0460
ward-salvage/ward-3e2e4760
ward-salvage/ward-649addd7
ward-salvage/ward-890e4d29
ward-salvage/ward-645b750b
ward-salvage/ward-bf851a72
ward-salvage/ward-98c8652f
ward-salvage/ward-bb10b620
ward-salvage/ward-1ee9be1c
ward-salvage/ward-d18595f6
ward-salvage/ward-5f914692
ward-salvage/ward-6ca05cbd
ward-salvage/ward-14f676cf
ward-salvage/ward-de811c20
ward-salvage/ward-eba3e824
ward-salvage/ward-16eb4ad0
ward-salvage/ward-c58e9c43
ward-salvage/ward-7487270b
v0.890.0
v0.889.0
v0.888.0
v0.887.0
v0.886.0
v0.885.0
v0.884.0
v0.883.0
v0.882.0
v0.881.0
v0.880.0
v0.879.0
v0.878.0
v0.877.0
v0.876.0
v0.875.0
v0.874.0
v0.873.0
v0.872.0
v0.871.0
v0.870.0
v0.869.0
v0.868.0
v0.867.0
v0.866.0
v0.865.0
v0.864.0
v0.863.0
v0.862.0
v0.861.0
v0.860.0
v0.859.0
v0.858.0
v0.857.0
v0.856.0
v0.855.0
v0.854.0
v0.853.0
v0.852.0
v0.851.0
v0.850.0
v0.849.0
v0.848.0
v0.847.0
v0.846.0
v0.845.0
v0.844.0
v0.843.0
v0.842.0
v0.841.0
v0.840.0
v0.839.0
v0.838.0
v0.837.0
v0.836.0
v0.835.0
v0.834.0
v0.833.0
v0.832.0
v0.830.0
v0.831.0
v0.829.0
v0.828.0
v0.827.0
v0.826.0
v0.825.0
v0.824.0
v0.823.0
v0.822.0
v0.821.0
v0.820.0
v0.819.0
v0.818.0
v0.817.0
v0.816.0
v0.815.0
v0.814.0
v0.813.0
v0.812.0
v0.811.0
v0.810.0
v0.809.0
v0.808.0
v0.807.0
v0.806.0
v0.805.0
v0.804.0
v0.803.0
v0.802.0
v0.801.0
v0.800.0
v0.799.0
v0.798.0
v0.797.0
v0.796.0
v0.795.0
v0.794.0
v0.793.0
v0.792.0
v0.791.0
v0.790.0
v0.789.0
v0.788.0
v0.787.0
v0.786.0
v0.785.0
v0.784.0
v0.783.0
v0.782.0
v0.781.0
v0.780.0
v0.779.0
v0.778.0
v0.777.0
v0.775.0-tmp
v0.776.0
v0.775.0
v0.774.0
v0.773.0
v0.772.0
v0.771.0
v0.770.0
v0.769.0
v0.768.0
v0.767.0
v0.766.0
v0.765.0
v0.764.0
v0.763.0
v0.762.0
v0.761.0
v0.760.0
v0.759.0
v0.758.0
v0.757.0
v0.756.0
v0.755.0
v0.754.0
v0.753.0
v0.752.0
v0.751.0
v0.750.0
v0.749.0
v0.748.0
v0.747.0
v0.746.0
v0.745.0
v0.744.0
v0.743.0
v0.742.0
v0.741.0
v0.740.0
v0.739.0
v0.738.0
v0.737.0
v0.736.0
v0.735.0
v0.734.0
v0.733.0
v0.732.0
v0.731.0
v0.730.0
v0.729.0
v0.728.0
v0.727.0
v0.726.0
v0.725.0
v0.724.0
v0.723.0
v0.722.0
v0.721.0
v0.720.0
v0.719.0
v0.718.0
v0.717.0
v0.716.0
v0.715.0
v0.714.0
v0.713.0
v0.712.0
v0.711.0
v0.710.0
v0.709.0
v0.708.0
v0.707.0
v0.706.0
v0.705.0
v0.704.0
v0.703.0
v0.702.0
v0.701.0
v0.700.0
v0.699.0
v0.698.0
v0.697.0
v0.696.0
v0.695.0
v0.694.0
v0.693.0
v0.692.0
v0.691.0
v0.690.0
v0.689.0
v0.688.0
v0.687.0
v0.686.0
v0.685.0
v0.684.0
v0.683.0
v0.682.0
v0.681.0
v0.680.0
v0.679.0
v0.678.0
v0.677.0
v0.676.0
v0.675.0
v0.674.0
v0.673.0
v0.672.0
v0.671.0
v0.670.0
v0.669.0
v0.668.0
v0.667.0
v0.666.0
v0.665.0
v0.664.0
v0.663.0
v0.662.0
v0.661.0
v0.660.0
v0.659.0
v0.658.0
v0.657.0
v0.656.0
v0.655.0
v0.654.0
v0.653.0
v0.652.0
v0.651.0
v0.650.0
v0.649.0
v0.648.0
v0.647.0
v0.646.0
v0.645.0
v0.644.0
v0.643.0
v0.642.0
v0.641.0
v0.640.0
v0.639.0
v0.638.0
v0.637.0
v0.636.0
v0.635.0
v0.634.0
v0.633.0
v0.632.0
v0.631.0
v0.630.0
v0.629.0
v0.628.0
v0.627.0
v0.626.0
v0.625.0
v0.624.0
v0.623.0
v0.622.0
v0.621.0
v0.620.0
v0.619.0
v0.618.0
v0.617.0
v0.616.0
v0.615.0
v0.614.0
v0.613.0
v0.612.0
v0.611.0
v0.610.0
v0.609.0
v0.608.0
v0.607.0
v0.606.0
v0.605.0
v0.604.0
v0.603.0
v0.602.0
v0.601.0
v0.600.0
v0.599.0
v0.598.0
v0.597.0
v0.596.0
v0.595.0
v0.594.0
v0.593.0
v0.592.0
v0.591.0
v0.590.0
v0.589.0
v0.588.0
v0.587.0
v0.586.0
v0.585.0
v0.584.0
v0.583.0
v0.582.0
v0.581.0
v0.580.0
v0.579.0
v0.578.0
v0.577.0
v0.576.0
v0.575.0
v0.574.0
v0.573.0
v0.572.0
v0.571.0
v0.570.0
v0.569.0
v0.568.0
v0.567.0
v0.566.0
v0.565.0
v0.564.0
v0.563.0
v0.562.0
v0.561.0
v0.560.0
v0.559.0
v0.558.0
v0.557.0
v0.556.0
v0.555.0
v0.554.0
v0.553.0
v0.552.0
v0.551.0
v0.550.0
v0.549.0
v0.548.0
v0.547.0
v0.546.0
v0.545.0
v0.544.0
v0.543.0
v0.542.0
v0.541.0
v0.540.0
v0.539.0
v0.538.0
v0.537.0
v0.536.0
v0.535.0
v0.534.0
v0.533.0
v0.532.0
v0.531.0
v0.530.0
v0.529.0
v0.528.0
v0.527.0
v0.526.0
v0.525.0
v0.524.0
v0.523.0
v0.522.0
v0.521.0
v0.520.0
v0.519.0
v0.518.0
v0.517.0
v0.516.0
v0.515.0
v0.514.0
v0.513.0
v0.512.0
v0.511.0
v0.510.0
v0.509.0
v0.508.0
v0.507.0
v0.506.0
v0.505.0
v0.504.0
v0.503.0
v0.502.0
v0.501.0
v0.500.0
v0.499.0
v0.498.0
v0.497.0
v0.496.0
v0.495.0
v0.494.0
v0.493.0
v0.492.0
v0.491.0
v0.490.0
v0.489.0
v0.488.0
v0.487.0
v0.486.0
v0.485.0
v0.484.0
v0.483.0
v0.482.0
v0.481.0
v0.480.0
v0.479.0
v0.478.0
v0.477.0
v0.476.0
v0.475.0
v0.474.0
v0.473.0
v0.472.0
v0.471.0
v0.470.0
v0.469.0
v0.468.0
v0.467.0
v0.466.0
v0.465.0
v0.464.0
v0.463.0
v0.462.0
v0.461.0
v0.460.0
v0.459.0
v0.458.0
v0.457.0
v0.456.0
v0.455.0
v0.454.0
v0.453.0
v0.452.0
v0.451.0
v0.450.0
v0.449.0
v0.448.0
v0.447.0
v0.446.0
v0.445.0
v0.444.0
v0.443.0
v0.442.0
v0.441.0
v0.440.0
v0.439.0
v0.438.0
v0.437.0
v0.436.0
v0.435.0
v0.434.0
v0.433.0
v0.432.0
v0.431.0
v0.430.0
v0.429.0
v0.428.0
v0.427.0
v0.426.0
v0.425.0
v0.424.0
v0.423.0
v0.422.0
v0.421.0
v0.420.0
v0.419.0
v0.418.0
v0.417.0
v0.416.0
v0.415.0
v0.414.0
v0.413.0
v0.412.0
v0.411.0
v0.410.0
v0.409.0
v0.408.0
v0.407.0
v0.406.0
v0.405.0
v0.404.0
v0.403.0
v0.402.0
v0.401.0
v0.400.0
v0.399.0
v0.398.0
v0.397.0
v0.396.0
v0.395.0
v0.394.0
v0.393.0
v0.392.0
v0.391.0
v0.390.0
v0.389.0
v0.388.0
v0.387.0
v0.386.0
v0.385.0
v0.384.0
v0.383.0
v0.382.0
v0.381.0
v0.380.0
v0.379.0
v0.378.0
v0.377.0
v0.376.0
v0.375.0
v0.374.0
v0.373.0
v0.372.0
v0.371.0
v0.370.0
v0.369.0
v0.368.0
v0.367.0
v0.366.0
v0.365.0
v0.364.0
v0.363.0
v0.362.0
v0.361.0
v0.360.0
v0.359.0
v0.358.0
v0.357.0
v0.356.0
v0.355.0
v0.354.0
v0.353.0
v0.352.0
v0.351.0
v0.350.0
v0.349.0
v0.348.0
v0.347.0
v0.346.0
v0.345.0
v0.344.0
v0.343.0
v0.342.0
v0.341.0
v0.340.0
v0.339.0
v0.338.0
v0.337.0
v0.336.0
v0.335.0
v0.334.0
v0.333.0
v0.332.0
v0.331.0
v0.330.0
v0.329.0
v0.328.0
v0.327.0
v0.326.0
v0.325.0
v0.324.0
v0.323.0
v0.322.0
v0.321.0
v0.320.0
v0.319.0
v0.318.0
v0.317.0
v0.316.0
v0.315.0
v0.314.0
v0.313.0
v0.312.0
v0.311.0
v0.310.0
v0.309.0
v0.308.0
v0.307.0
v0.306.0
v0.305.0
v0.304.0
v0.303.0
v0.302.0
v0.301.0
v0.300.0
v0.299.0
v0.298.0
v0.297.0
v0.296.0
v0.295.0
v0.294.0
v0.293.0
v0.292.0
v0.291.0
v0.290.0
v0.289.0
v0.288.0
v0.287.0
v0.286.0
v0.285.0
v0.284.0
v0.283.0
v0.282.0
v0.281.0
v0.280.0
v0.279.0
v0.278.0
v0.277.0
v0.276.0
v0.275.0
v0.274.0
v0.273.0
v0.272.0
v0.271.0
v0.270.0
v0.269.0
v0.268.0
v0.267.0
v0.266.0
v0.265.0
v0.264.0
v0.263.0
v0.262.0
v0.261.0
v0.260.0
v0.259.0
v0.258.0
v0.257.0
v0.256.0
v0.255.0
v0.254.0
v0.253.0
v0.252.0
v0.251.0
v0.250.0
v0.249.0
v0.248.0
v0.247.0
v0.246.0
v0.245.0
v0.244.0
v0.243.0
v0.242.0
v0.241.0
v0.240.0
v0.239.0
v0.238.0
v0.237.0
v0.236.0
v0.235.0
v0.234.0
v0.233.0
v0.232.0
v0.231.0
v0.230.0
v0.229.0
v0.228.0
v0.227.0
v0.226.0
v0.225.0
v0.224.0
v0.223.0
v0.222.0
v0.221.0
v0.220.0
v0.219.0
v0.218.0
v0.217.0
v0.216.0
v0.215.0
v0.214.0
v0.213.0
v0.212.0
v0.211.0
v0.210.0
v0.209.0
v0.208.0
v0.207.0
v0.206.0
v0.205.0
v0.204.0
v0.203.0
v0.202.0
v0.201.0
v0.200.0
v0.199.0
v0.198.0
v0.197.0
v0.196.0
v0.195.0
v0.194.0
v0.193.0
v0.192.0
v0.191.0
v0.190.0
v0.189.0
v0.188.0
v0.187.0
v0.186.0
v0.185.0
v0.184.0
v0.183.0
v0.182.0
v0.181.0
v0.180.0
v0.179.0
v0.178.0
v0.177.0
v0.176.0
v0.175.0
v0.174.0
v0.173.0
v0.172.0
v0.171.0
v0.170.0
v0.169.0
v0.168.0
v0.167.0
v0.166.0
v0.165.0
v0.164.0
v0.163.0
v0.162.0
v0.161.0
v0.160.0
v0.159.0
v0.158.0
v0.157.0
v0.156.0
v0.155.0
v0.154.0
v0.153.0
v0.152.0
v0.151.0
v0.150.0
v0.149.0
v0.148.0
v0.147.0
v0.146.0
v0.145.0
v0.144.0
v0.143.0
v0.142.0
v0.141.0
v0.140.0
v0.139.0
v0.138.0
v0.137.0
v0.136.0
v0.135.0
v0.134.0
v0.133.0
v0.132.0
v0.131.0
v0.130.0
v0.129.0
v0.128.0
v0.127.0
v0.126.0
v0.125.0
v0.124.0
v0.123.0
v0.122.0
v0.121.0
v0.120.0
v0.119.0
v0.118.0
v0.117.0
v0.116.0
v0.115.0
v0.114.0
v0.113.0
v0.112.0
v0.111.0
v0.110.0
v0.109.0
v0.108.0
v0.107.0
v0.106.0
v0.105.0
v0.104.0
v0.103.0
v0.102.0
v0.101.0
v0.100.0
v0.99.0
v0.98.0
v0.97.0
v0.96.0
v0.95.0
v0.94.0
v0.93.0
v0.92.0
v0.91.0
v0.90.0
v0.89.0
v0.88.0
v0.87.0
v0.86.0
v0.85.0
v0.84.0
v0.83.0
v0.82.0
v0.81.0
v0.80.0
v0.79.0
v0.78.0
v0.77.0
v0.76.0
v0.75.0
v0.74.0
v0.73.0
v0.72.0
v0.71.0
v0.70.0
v0.69.0
v0.68.0
v0.67.0
v0.66.0
v0.65.0
v0.64.0
v0.63.0
v0.62.0
v0.61.0
v0.60.0
v0.59.0
v0.58.0
v0.57.0
v0.56.0
v0.55.0
v0.54.0
v0.53.0
v0.52.0
v0.51.0
v0.50.0
v0.49.0
v0.48.0
v0.47.0
v0.46.0
v0.45.0
v0.44.0
v0.43.0
v0.42.0
v0.41.0
v0.40.0
v0.39.0
v0.38.0
v0.37.0
v0.36.0
v0.35.0
v0.34.0
v0.33.0
v0.32.0
v0.31.0
v0.30.0
v0.29.0
v0.28.0
v0.27.0
v0.26.0
v0.25.0
v0.24.0
v0.23.0
v0.22.0
v0.21.0
v0.20.0
v0.19.0
v0.18.0
v0.17.0
v0.16.0
v0.15.0
v0.14.0
v0.13.0
v0.12.0
v0.11.0
v0.10.0
v0.9.0
v0.8.0
v0.7.0
v0.6.0
v0.5.8
v0.5.7
v0.5.6
v0.5.5
v0.5.4
v0.5.3
v0.5.2
v0.5.1
v0.5.0
v0.4.0
v0.3.0
v0.2.2
v0.2.1
v0.2.0
v0.1.3
v0.1.2
v0.1.1
v0.1.0
v0.0.18
v0.0.17
v0.0.16
v0.0.15
v0.0.14
v0.0.13
v0.0.12
v0.0.11
v0.0.10
v0.0.9
v0.0.8
v0.0.7
v0.0.6
v0.0.5
v0.0.4
v0.0.3
v0.0.2
v0.0.1
Labels
Clear labels
burndown-2026-06
Backlog burndown June 2026
pressure-test
Cold-read release pressure-test findings and coordination
sunday-sprint
Burn-down by Sunday 2026-06-07
autonomy
async-consult
A human needs to consult on the issue to upgrade it to headless
autonomy
epic
This issue has many units of sub work - its size makes it meaningfully exclusive with other autonomy types
autonomy
headless
The agent can perform the work on its own
autonomy
live-collab
The agent and the human need to work together in realtime
coherence-core
Core review set for the warded control plane coherence milestone. These issues form the release spine; adjacent milestone issues are stretch or supporting work.
priority
P0
priority tier
priority
P1
priority tier
priority
P2
priority tier
priority
P3
priority tier
priority
P4
priority tier
qa-fixture
Disposable issue admitted to the bounded Ward QA verification lane.
role/advocate
requires work from the Developer Advocate seat
role/director
requires work from the Portfolio Director seat
role/exec
requires work from the exec role
role/frontend
requires work from the Frontend Engineer seat
role/gamedev
requires work from the Game Developer seat
role/human
requires a person, and specifically not an agent seat
role/platform
requires work from the Platform Engineer seat
role/qa
requires work from the QA role
role/science
requires work from the Applied Scientist seat
role/sysadmin
requires work from the Systems Administrator seat
state
ambient
ambient and ephemeral work, held as a maintained document rather than a queue
No labels
burndown-2026-06
pressure-test
sunday-sprint
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/advocate
role/director
role/exec
role/frontend
role/gamedev
role/human
role/platform
role/qa
role/science
role/sysadmin
state
ambient
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/ward#934
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal:
Mine the warded-agent era of ward history and produce a regression-defense plan: true integration/smoke tests plus agent-facing CODE-REVIEW.md guidance.
Scope:
ward agent/wardeddispatch surface unless a better boundary is found. Record the boundary SHA/date in the output.main.Expected deliverables:
Notes:
This follows from the current dispatch regression thread and ward#932. The goal is not a small fake-broker test. The integration test list should defend against common or serious regressions that have actually happened in ward history.
🔎 ward agent advisor
ward agent advisor --harness codexran a one-shot deep research pass on this question:Recommendation
Keep this as one ward issue. Do not split child issues. The work is single-repo regression defense in
coilyco-flight-deck/ward;coilyco-flight-deck/agentic-os#402is only the contract source for the futureCODE-REVIEW.mdshape.The warded-agent era boundary should be
c3d619f6d2fa786c6fccef27bdbf95d20ac3b4d0on 2026-06-17,feat(agent): add \ward agent work ` issue-seeded container shortcut. That is the first commit addingagentCommand()to the CLI and a real issue-seededward agentdispatch surface. Earlier container commits on 2026-06-16 matter as substrate, but they were not yet the warded-agent surface. The publicwarded` shim arrived later on 2026-06-24, so using it as the boundary would miss the first week of agent failures.Research pass used that boundary through current
mainat7094eac57e5d713f0cec57fcdd285417ab4e02f6on 2026-07-10. The corpus has 987 commits and 553 referenced ward issues, plus current live thread context from ward#876, ward#900, ward#931, ward#932, and ward#934. The recurring pattern is not lack of small unit tests. It is boundary drift: read-only surfaces fall back to local Docker, generated ops surfaces leak into core agent paths, reservations survive failed launches, bootstrap failures look like successful carries, and done markers are trusted before the real landing boundary is verified.Decisions
c3d619f6d2faas the mechanical start. Mention the earlier container foundation separately only when a scenario depends on it.read-only surface -> host dispatch broker -> Docker create/start -> short-lived engineer container.go test ./.... Add a separate Docker-capable smoke job that gates releases at minimum, and PRs if the runner can expose a Docker socket safely.CODE-REVIEW.mdonce the aos hook is available, or earlier as normal docs. Its content should be local invariants and historical issues only, not generic review advice.Regression Matrix
4414c5d2dd7d,0d2a61aa67a7,d8dc72273567,7094eac57e5d. Boundary exercised: director/read-only surface -> TCP dispatch broker -> host Docker socket -> engineer container. Fixture needs: real Docker socket, fake tracker or fixture issue resolver, local no-op image viaWARD_AGENT_IMAGE, temp gitcache, broker token. CI placement: Docker-capable release gate, PR gate if the runner supports it. Why it matters: #933 proves a fake broker records a request, but it still would not catch host Docker socket, labels/env, asset staging, or create/start regressions.fcd5f2bfbdc8for core Forgejo decoupling. Boundary exercised: config source -> smart defaults -> repo authority -> dispatch allow/refuse. Fixture needs:file://fleet bundle trustingcoilyco-flight-deck, neutral bundle rejecting it, no network. CI placement: normal unit/integration. Why it matters: the live #931 failure needed explicitWARD_CONFIG_REF, and #876 showed smart-default recursion. Core dispatch should not depend on runtime generated ops surfaces.a7779c05e308,2f900d630d2a,36f8f65c0e90,cd07ffd0c58a,0960b691450c,8025b73253ed. Boundary exercised: tracker reservation -> broker/launch -> pre-launch failure -> unlock/comment. Fixture needs: fake lock/comment forge, fake broker launch failures, release-asset failure case. CI placement: normal unit plus one broker integration. Why it matters: stale reservations repeatedly blocked retry or made failed runs look active.v0.555.0binary 404. Commits includee74d9185b081,15c3602f34e6,9a131f0369b7,0a92e843ff2a,40b7eeb7fa57,4cf59d5ae6c,cd07ffd0c58a. Boundary exercised: host release/version selection -> bootstrap download -> entrypoint smoke gates -> agent launch. Fixture needs: local HTTP release server returning 404, fake auth files, no-op image, temp asset dirs outside/tmpfor snap-docker coverage. CI placement: normal unit for selection/errors, Docker smoke for entrypoint behavior. Why it matters: bootstrap and auth failures have historically hung, salvaged fake work, or left only raw logs.93b020ab871c,9013c9d125d0,343abb53a576. Boundary exercised: workspace git state -> primary and--reporemotes -> carried issue outcome/salvage comments. Fixture needs: local bare remotes for primary and grant repos, fake carried issue, deliberate secondary push miss. CI placement: normal integration, no Docker required. Why it matters: #291 closed as done while granted-repo work was lost. A green issue must mean every repo landed or was salvaged loudly.2e738e53dfd3,6a66d66b25c0,02f9a55c6023,8025b73253ed. Boundary exercised: Forgejo comments/reservations/outcomes -> director heartbeat classification -> broker logs/list path. Fixture needs: synthetic issue timelines with reservation, release, failed dispatch, WARD-OUTCOME, stale PR, and missing local Docker. CI placement: normal unit. Why it matters: #900 shows director classification can report false failure when it reads local Docker from a read-only surface.671c21d276d1,763a26025be7,993e222417e2,40a37bf7d9d0. Boundary exercised: workflow config -> forge client -> PR create/read/merge policy -> final WARD-OUTCOME. Fixture needs: fake Forgejo and GitHub APIs, protected-main behavior, stale PR 404, review skipped/passed markers. CI placement: normal integration. Why it matters: workflow names and GitHub semantics changed late, and wrong done-condition logic is high impact.Proposed CODE-REVIEW.md Draft
Open Questions
WARD_SMOKE_TEST_SKIPbe tightened so it still performs Docker create/start and only short-circuits inside the launched container? Recommendation: use a tiny image throughWARD_AGENT_IMAGE, because it is easier to prove no LLM, Forgejo mutation, or push can happen.accepted requestorcontainer observed created/started? Current behavior can say forwarded before a reservation appears. The smoke should force an explicit product decision here.--ward-versionrelease asset before posting a reservation? The ward#934 comment failed on av0.555.0binary 404 after reservation, so this deserves either a test or an explicit acceptance of late failure with self-documenting release/unlock.Risks
/var/run/docker.sockand fail if Docker is touched locally.Researched and posted automatically by
ward agent advisor --harness codex(ward#179). This is one-shot research, not a carried change - verify before acting on it.— Codex, via
ward agent🔎 ward agent advisor
ward agent advisor --harness clauderan a one-shot deep research pass on this question:pre-commit installed at .git/hooks/pre-commit
pre-commit installed at .git/hooks/commit-msg
Not logged in · Please run /login
Researched and posted automatically by
ward agent advisor --harness claude(ward#179). This is one-shot research, not a carried change - verify before acting on it.— Claude (she/her), via
ward agent🔎 ward agent advisor
ward agent advisor --harness codexran a one-shot deep research pass on this question:Recommendation
Keep this as one
coilyco-flight-deck/wardissue. The work is single-repo regression defense.coilyco-flight-deck/agentic-os#402is only the source of theCODE-REVIEW.mdcontract shape.Use
c3d619f6d2fa786c6fccef27bdbf95d20ac3b4d0on 2026-06-17 as the warded-agent-era boundary. It is the first commit adding the real issue-seededward agent <name> work <issue>dispatch surface throughagentCommand(). Earlier 2026-06-16 container commits are foundation only. The publicwardedshim arrives later atdfa5610118258b9f11247618329b3fcbb7b82d10on 2026-06-24, so usingwardedas the boundary misses the first week of agent failures.Current
mainfor this pass is7094eac57e5d713f0cec57fcdd285417ab4e02f6on 2026-07-10. The boundary-to-main corpus is 987 commits. A simple local scan finds 540 direct#Nreferences in commit messages, with more possible when counting URL and cross-repo forms. The recurring failure pattern is boundary drift: read-only surfaces accidentally use local Docker, runtime KDL or generated ops leaves leak into core agent paths, reservations outlive failed launches, bootstrap failures look like live work, and final outcome comments are trusted before the true landing boundary is verified.Decisions
c3d619f6d2faas the start. Mentionc2cb54cab825and other container commits only as substrate when a test needs pre-agent container behavior.TestRunAgentTaskDirectRoutesThroughBrokerOnReadonlySurfaceincmd/ward/agent_dispatch_broker_test.goproves a read-only engineer task can file through a fake Forgejo and forward to a fake TCP broker. It does not prove Docker create/start, real asset staging, release binary download, bootstrap, auth gates, labels, or reaper behavior.go test ./.... Add one Docker-capable smoke job that crossesread-only surface -> host broker -> Docker create/start -> short-lived no-op container.WARD_AGENT_IMAGE.CODE-REVIEW.mdusing the agentic-os#402 shape:## Localized invariants,## Historical issues, and## Update triggers. It should contain only ward-specific invariants and historical failures.Regression Matrix
4414c5d2dd7d,0d2a61aa67a7,d8dc72273567,7094eac57e5. Boundary: director/read-only surface -> TCP dispatch broker -> host Docker -> engineer container. Fixtures: Docker socket, no-op image, temp gitcache, fake issue resolver, broker token. CI: Docker-capable release gate, PR gate only if the runner can expose Docker safely. Why: fake broker coverage cannot catch the failures that repeatedly broke real dispatch.fcd5f2bfbdc8. Boundary: config source -> smart defaults -> repo authority -> launch allow/refuse. Fixtures:file://bundle trustingcoilyco-flight-deck, neutral bundle rejecting it, malformed bundle, no network. CI: normal integration. Why: #931 needed explicitWARD_CONFIG_REF, #876 hit smart-default recursion, and #929 showed core agent behavior depending on generated ops CLI shape.a7779c05e308,2f900d630d2a,36f8f65c0e90,cd07ffd0c58a,0960b691450c,8025b73253ed. Boundary: tracker reservation -> broker or launch -> pre-launch failure -> release/comment/retry marker. Fixtures: fake forge comments and locks, fake broker launch failures, release asset 404. CI: normal tests plus broker integration. Why: stale reservations repeatedly blocked retries or made failed work look active.e74d9185b081,15c3602f34e6,9a131f0369b7,40b7eeb7fa57,4cf59d5ae6c,7a8d521,cd07ffd0c58a. Boundary: release/version selection -> bootstrap download -> asset staging -> credential seeding -> harness smoke gate. Fixtures: local HTTP release server returning 404, fake credential files, snap-Docker-style path fixture, no-op image. CI: normal tests for selection/errors, Docker smoke for entrypoint behavior. Why: historical bootstrap/auth failures hung, mislabeled root cause, leaked secrets, or fell through to fake salvage.93b020ab871c,9013c9d125d0,343abb53a576. Boundary: workspace git state -> primary and granted repo remotes -> issue outcome or salvage comment. Fixtures: local bare primary and granted remotes, fake carried issue, deliberate secondary push miss. CI: normal integration. Why: ward#291 proved a green issue can hide lost secondary-repo work unless every granted repo is verified.2e738e53dfd3,6a66d66b25c0,02f9a55c6023,8025b73253ed. Boundary: Forgejo comments/reservations/outcomes -> director heartbeat classification -> broker-visible state/logs/list. Fixtures: synthetic timelines with reservation, release, failed dispatch,WARD-OUTCOME, stale PR, and missing local Docker. CI: normal unit/integration. Why: ward#900 shows a director can falsely classify broker-forwarded runs as failed by inspecting surface-local Docker.763a26025be7,993e222417e2,40a37bf7d9d0,671c21d276d1. Boundary: workflow config -> forge client -> PR create/read/merge policy -> finalWARD-OUTCOME. Fixtures: fake Forgejo and GitHub APIs, protected-main behavior, stale PR 404, review skipped/passed markers. CI: normal integration. Why: workflow names and GitHub semantics changed late, and wrong done-condition logic is high impact.Proposed CODE-REVIEW.md Draft
Code review contract
Code review here defends ward control-plane invariants and historical failures that have already stopped warded-agent work.
Localized invariants
ward opsleaves.WARD-OUTCOMEis trusted only after the workflow boundary is satisfied: direct-main landed, PR opened or merged as configured, GitHub path honored, review gate settled, and every granted repo verified or salvaged.Historical issues
Update triggers
Refresh this file when a warded run needs manual recovery, when a launch path moves across process/container/forge boundaries, when generated surfaces are proposed for a core path, or when an issue repeats one of the historical failure modes above.
Options
Open Questions
WARD_SMOKE_TEST_SKIPbe tightened so Docker create/start still happens and only in-container agent work is skipped? Recommendation: tiny image throughWARD_AGENT_IMAGE.--ward-versionrelease asset before posting a reservation? ward#934 failed on av0.555.0binary 404 after reservation, so either preflight it or require the failure path to release and comment loudly.direct-main/pull-requests/pull-requests-and-merge/patch-onlycompatibility, or the ward#786 desired contract with singular PR names andremote-branch-only? Tests need to pin the intended transition.Risks
CODE-REVIEW.mdshould point reviewers at these historical invariants and the tests should enforce the actual boundaries.Researched and posted automatically by
ward agent advisor --harness codex(ward#179). This is one-shot research, not a carried change - verify before acting on it.— Codex, via
ward agent🔎 ward agent advisor
ward agent advisor --harness codexran a one-shot deep research pass on this question:Recommendation
Keep this as one
coilyco-flight-deck/wardissue. The work is single-repo regression defense in ward.coilyco-flight-deck/agentic-os#402only supplies theCODE-REVIEW.mdcontract shape.Use
c3d619f6d2fa786c6fccef27bdbf95d20ac3b4d0from 2026-06-17 as the warded-agent era boundary. It is the first commit that adds the issue-seededward agent <name> work <issue>surface throughagentCommand(). Earlier 2026-06-16 container commits are substrate. The publicwardedshim arrives later atdfa5610118258b9f11247618329b3fcbb7b82d10on 2026-06-24, so usingwardedas the boundary misses the first failure-heavy week.This pass checked current
mainat7094eac57e5d713f0cec57fcdd285417ab4e02f6from 2026-07-10. The boundary-to-main corpus is 987 commits with 554 direct issue references in commit text. The dominant regression pattern is boundary drift: read-only surfaces fall back to local Docker, generated ops or runtime KDL surfaces leak into core agent paths, reservations survive failed launches, bootstrap failures look like live work, and finalWARD-OUTCOMEmarkers are trusted before the actual landing boundary is verified.Decisions
c3d619f6d2faand cite the earlier container commits only as launch substrate.TestRunAgentTaskDirectRoutesThroughBrokerOnReadonlySurfaceas a useful fake-broker routing regression. It does not prove Docker create/start, asset staging, release binary download, bootstrap, auth gates, labels, or reaper behavior.go test ./...for fake-server and local-git coverage. Add a Docker-capable smoke job for the real dispatch boundary, at least release-gated and PR-gated only if the runner can expose Docker safely.CODE-REVIEW.mdusing the agentic-os#402 contract: localized invariants, historical issues, and update triggers only.Regression Matrix
87cc58a,e626d60,d8dc722,4414c5d,7094eac. Boundary: read-only surface -> dispatch broker -> host Docker socket -> engineer container. Fixtures: real Docker socket, no-op image throughWARD_AGENT_IMAGE, fake issue resolver or local tracker, temp gitcache, broker token. CI: Docker-capable release smoke. Why: fake brokers cannot catch the failures that repeatedly broke real dispatch.fcd5f2b. Boundary: config source -> smart defaults -> repo authority -> dispatch allow/refuse. Fixtures: trustedfile://bundle forcoilyco-flight-deck, neutral bundle rejection, malformed bundle. CI: normal integration. Why: live failures required explicitWARD_CONFIG_REF, hit smart-default recursion, and exposed core-path dependence on generated ops shape.a7779c0,2f900d6,36f8f65,cd07ffd,8025b73. Boundary: tracker reservation -> broker or launch -> pre-launch failure -> unlock/comment/retry marker. Fixtures: fake forge comments and locks, broker launch failures, release asset 404. CI: normal tests plus broker integration. Why: stale reservations repeatedly blocked retries or made failed work look active.e74d918,15c3602,9a131f0,40b7eeb,7a8d521. Boundary: release/version selection -> bootstrap download -> asset staging -> credential seeding -> harness smoke gate. Fixtures: local HTTP release server returning 404, fake credential files, snap-Docker path fixture, no-op image. CI: normal tests for selection and errors, Docker smoke for entrypoint behavior. Why: bootstrap/auth failures have historically hung, mislabeled root cause, or salvaged fake work.93b020a,9013c9d,343abb5,cee27a6. Boundary: workspace git state -> primary and granted repo remotes -> issue outcome or salvage comment. Fixtures: local bare primary and granted remotes, fake carried issue, deliberate secondary push miss. CI: normal integration. Why: ward#291 proved a green issue can hide lost secondary-repo work unless every granted repo is verified.2e738e5,6a66d66,02f9a55,8025b73. Boundary: tracker comments/reservations/outcomes -> director heartbeat classification -> broker-visible state/logs/list. Fixtures: synthetic timelines with reservation, release, failed dispatch,WARD-OUTCOME, stale PR, and missing local Docker. CI: normal unit/integration. Why: ward#900 shows a director can falsely classify broker-forwarded runs by inspecting surface-local Docker.671c21d,763a260,993e222,40a37bf,aadd33d. Boundary: workflow config -> forge client -> PR create/read/merge policy -> finalWARD-OUTCOME. Fixtures: fake Forgejo and GitHub APIs, protected-main behavior, stale PR 404, review skipped/passed markers. CI: normal integration. Why: workflow names and GitHub semantics changed late, and wrong done-condition logic is high impact.Proposed
CODE-REVIEW.mdDraftOptions
Open Questions
WARD_SMOKE_TEST_SKIPbe tightened so Docker create/start still happens and only in-container agent work is skipped? Recommendation: use a tiny image throughWARD_AGENT_IMAGE.--ward-versionrelease asset before posting a reservation? ward#934 failed on av0.555.0binary 404 after reservation, so either preflight it or require the late failure path to release and comment loudly.Risks
CODE-REVIEW.mdshould point reviewers at these historical invariants, while the tests enforce the actual boundaries.Researched and posted automatically by
ward agent advisor --harness codex(ward#179). This is one-shot research, not a carried change - verify before acting on it.— Codex, via
ward agent