Use full dashboard width
All checks were successful
deploy / deploy (push) Successful in 1m7s

Proof: Dashboard shell now spans width 100%, panel subtitles and lifecycle pills no longer use max-width constraints, pair config controls no longer use React maxWidth, static UI coverage asserts those constraints stay absent, full npm test passes, and the operator dashboard bundle builds.

Assumptions: this is a dashboard layout-only cleanup for the active maker timing and competitiveness turn; it does not change strategy decisions, execution, DB config, persistence, live funds, or response policy.

Still fake: relay acceptance remains submission evidence only; venue-native terminal fill ids and fee-complete realized PnL remain unavailable.
This commit is contained in:
philipp 2026-05-19 18:46:02 +02:00
parent 7c006ac6a2
commit 99c914ca77
3 changed files with 8 additions and 11 deletions

View file

@ -1242,7 +1242,6 @@ function PairConfigSection({ assetCatalog, pairConfig, onControl }) {
[pairId]: event.target.value, [pairId]: event.target.value,
}))} }))}
step="1" step="1"
style={{ maxWidth: 92 }}
type="number" type="number"
value={edgeDrafts[pairId] ?? ''} value={edgeDrafts[pairId] ?? ''}
/> />
@ -1257,7 +1256,6 @@ function PairConfigSection({ assetCatalog, pairConfig, onControl }) {
[pairId]: event.target.value, [pairId]: event.target.value,
}))} }))}
step="0.00000001" step="0.00000001"
style={{ maxWidth: 112 }}
type="number" type="number"
value={minNotionalDrafts[pairId] ?? ''} value={minNotionalDrafts[pairId] ?? ''}
/> />
@ -1272,7 +1270,6 @@ function PairConfigSection({ assetCatalog, pairConfig, onControl }) {
[pairId]: event.target.value, [pairId]: event.target.value,
}))} }))}
step="0.00000001" step="0.00000001"
style={{ maxWidth: 112 }}
type="number" type="number"
value={maxNotionalDrafts[pairId] ?? ''} value={maxNotionalDrafts[pairId] ?? ''}
/> />
@ -1312,7 +1309,6 @@ function PairConfigSection({ assetCatalog, pairConfig, onControl }) {
[pairId]: event.target.value, [pairId]: event.target.value,
}))} }))}
step="1" step="1"
style={{ maxWidth: 112 }}
type="number" type="number"
value={maxQuoteAgeDrafts[pairId] ?? ''} value={maxQuoteAgeDrafts[pairId] ?? ''}
/> />

View file

@ -57,9 +57,9 @@ select {
} }
.shell { .shell {
width: min(1440px, calc(100vw - 28px)); width: 100%;
margin: 0 auto; margin: 0;
padding: 18px 0 36px; padding: 18px 14px 36px;
} }
.status-bar { .status-bar {
@ -207,7 +207,6 @@ select {
.panel-subtitle { .panel-subtitle {
margin-top: 8px; margin-top: 8px;
color: var(--muted); color: var(--muted);
max-width: 72ch;
} }
.metric-grid { .metric-grid {
@ -581,8 +580,7 @@ table.lifecycle-table th:nth-child(5) {
@media (max-width: 720px) { @media (max-width: 720px) {
.shell { .shell {
width: min(100vw - 16px, 100%); padding: 10px 8px 36px;
padding-top: 10px;
} }
.status-bar { .status-bar {
@ -665,7 +663,7 @@ table.lifecycle-table th:nth-child(5) {
} }
.quote-lifecycle-table .pill { .quote-lifecycle-table .pill {
max-width: 100%; width: 100%;
min-width: 0; min-width: 0;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;

View file

@ -35,6 +35,9 @@ test('strategy page owns consolidated quote lifecycle and successful trade table
assert.match(strategySource, /Live rows update as they arrive/); assert.match(strategySource, /Live rows update as they arrive/);
assert.match(strategySource, /visibleRows/); assert.match(strategySource, /visibleRows/);
assert.match(strategySource, /quote-lifecycle-placeholder-row/); assert.match(strategySource, /quote-lifecycle-placeholder-row/);
assert.match(stylesSource, /\.shell \{[\s\S]*?width: 100%;[\s\S]*?margin: 0;[\s\S]*?\}/);
assert.doesNotMatch(stylesSource, /^\s*max-width\s*:/m);
assert.doesNotMatch(strategySource, /maxWidth:/);
assert.match(stylesSource, /\.quote-lifecycle-table tbody tr\.quote-lifecycle-row/); assert.match(stylesSource, /\.quote-lifecycle-table tbody tr\.quote-lifecycle-row/);
assert.match(stylesSource, /\.quote-lifecycle-placeholder-row td/); assert.match(stylesSource, /\.quote-lifecycle-placeholder-row td/);
assert.match(stylesSource, /\.lifecycle-clamp-one/); assert.match(stylesSource, /\.lifecycle-clamp-one/);