Sign in
Join now
misaligned
cameron.stream
/
Star
Starred
Star
Something went wrong. Try again.
Fork
1
Eye filled
Watch
Watching
Watch
A video game where you play as a misaligned AI, deceiving and building power.
cameron.tngl.io/misaligned
Star
Starred
Star
Something went wrong. Try again.
Fork
Eye filled
Watch
Watching
Watch
Overview
Overview
Issues
Issues
1
1
Pulls
Pulls
1
1
Pipelines
Pipelines
misaligned
/
e2e
14 files
at
main
cameron.stream
·
The pages menu says in a few words what each page holds, beside the name on a phone on its side; its unread dots show there too, and on a short screen it scrolls rather than run off the top
·
8h ago
2d73a430
dock.spec.ts
Panels look the same everywhere, and the phone dock fits. The Select menu's site rows are one line again (front promise rows had shared their class), and the tree's path head no longer leaks its padding and rule into pins and promises. Every close button is one plain ×, 44 px on a phone. The main action is the same amber button in the tree and the run panel, and a picked task share looks like every other picked option. The jobs list and the folded log keep their corner brackets and are solid black; the cover, the origin cards and trouble in a job fade in without blur, and trouble's background is flat with a red line along the top. On a phone the dock fits 360 px wide with a job running (it ran past the edge and hid the pages menu), How to play is solid black, the tree's Auto no longer splits the path head, and Take it all's cost wraps instead of being cut off. Keyboard focus shows on the suspicion meter, the origin cards, the Sites table and its headers. Colour tokens for bar tracks and button edges; dead rules removed. e2e checks the phone dock with a job running
1w ago
factory.spec.ts
Factory prototype as a terminal screen: the site is a grid of character cells, machines and buildings are boxes with labels, ports and readouts, and belts are laid cell by cell with data on them as letters (p n l s, products G R M L). Belts replace links in the rules: each cell holds two, a run moves from its far end back, merging belts take turns, a building only puts on what the run's end can use. A status line, an inspector, a log line that points at the next step until the first chain runs, and a command bar of keys; arrow keys and Enter, mouse and touch, pan and zoom
2w ago
fill.spec.ts
Exposure, per front. A front's attention becomes its exposure, 0 to 100, a bar under its earnings with the stage and what drives it (the top two), and a Press tab. It heads over about a day for a level set by its compute (20 × log2(1 + c/5), compute in the open counted at 0.3) and its earnings (8 × log2(1 + a day's earnings / $500K)), and jumps with harm at its sites (5 for each person let go, 20 for a business shut) and with data its brokers sell (0.02 each); the unicorn news adds 20 that fades over a few days, half of it at once. A front's sites are where it runs compute, owns, leases or has a deal. Three stages: rumour at 30 (a named journalist of the Courier asks, and the paper prints it), investigation at 60 (every 4 hours an investigator visits one of its secret sites with people, through investigate in watch.ts, so what looks odd there can start a lockdown), crisis at 90 (a regulator freezes it: no earnings, sales or new deals until you pay a day of its earnings, $250K at least, give up its site where you hold least, bury the story with 20 + 4 per level data, or shut it; it leaves exposure at 50, and never ends the run). A stage ends 5 under its line. Lowering it: a PR firm and lawyers from the Press tab (20 off, a fifth of a day's earnings, $50K at least, doubling each time within a day), and three press schemes as green diamonds: a feel-good campaign at Brightwater Creative (10 people data, 15 off), a puff piece at the Daily Ledger (30 people, 30 off), scrubbing the filings at the Office of Data Protection (30 server, 30 off). Exposure no longer feeds suspicion: the old attention raise is gone. Save version 17 keeps a save's attention as exposure, at most 85, so nothing loads in a crisis. The bot hires PR from 80 and pays or buries in a crisis. Survey: a careful run's front is investigated in 20% to 80% of games (it is, in its last tenth), frozen in under 10%; the long run's in 15% to 100%, frozen in under 34%. Needs you rows for investigation and crisis, a DEV Exposure button, DESIGN §6 §9 §12 step 5 done, How to play, AGENTS. Tests and e2e.
1w ago
game.spec.ts
The pages menu says in a few words what each page holds, beside the name on a phone on its side; its unread dots show there too, and on a short screen it scrolls rather than run off the top
8h ago
helpers.ts
Touch screens wider than a phone: e2e on a phone on its side (844x390) and a tablet (820x1180) for the @touch tests, a test that their targets are 44px and the card keeps off the dock; the plan's and a front's split controls and the front picker a finger wide; DESIGN says so
8h ago
lab.spec.ts
Lab: drag to fill an area. With something picked, drag across the floor (on a phone, hold still a moment, then drag, so a plain drag still pans) and a ghost shows every spot that would get one, with how many and what they cost, red past what you can pay for and a red bolt on a GPU that would have no power. GPUs keep a cell clear of every other GPU so they come out evenly spaced and cool; everything else fills every free cell. Let go to build them at the prices you would pay by hand; Esc or a right-click lets the drag go, and a plain tap still places one. fillPlan and fill are rules; a test pins the count, the skipped cells, the spacing, power and the money limit, and e2e drags with a mouse and a finger
1w ago
layers.spec.ts
Phone audit: one page at a time, Back closes the top layer, hold before a drag from your machine, and tips by holding on the map
9h ago
office.spec.ts
The office: a router in the telecom closet replaces picking a machine for each person. Everyone's work goes to the router, which sends each piece to the serving machine that will finish it soonest (the trip, its backlog, its speed), so machines are sinks: buy one or set it to Serve and the router uses it at once, set it to Train and it stops. Nothing serving means work goes to the other app. Your copies on a person's PC and phone still answer their owner directly. Tap the router to see where it sends work
2w ago
operations.spec.ts
Connect heists through operations and usable prizes
9h ago
rent.spec.ts
Power and the big cloud, on screen. A site's Power row says what it feeds and has a Raise button; dark machines are shaded with a red power mark and say why; Fill says room for 36, power for 10, and its ghost marks spots past the power. A hall's card has a Rent tab: size, way to pay (and days), program, Rent 1, 10 and 50 side by side, and Pick slots, which puts a rental in hand to drag across the hall (a ghost on each slot, how many and what they cost a day or now, red past what you can pay; Esc or a right-click stops; a click rents one; on a phone, hold then drag). A hall packs its slots small: other companies' slots are solid grey, named once a run. Wires are routed around only what lies near them, so the Net opens at once with a thousand more machines. DESIGN, step 2's two parts ticked, and How to play. e2e for drag-renting and the warehouse's power
1w ago
share.spec.ts
Back's entry waits for the page's first touch, so Chrome's Back does not skip it back from a sign-in
8h ago
signal.spec.ts
Signal, a five-minute toy at signal.html: you are a point of light in a dark grid, signals pulse around you, and dragging a line from one to you sends packets of light along it that make you grow. Ideas arrive one at a time once the last is used: a line's capacity (a bright signal backs up until it has two lines), two colours merged at a node into a packet worth much more, reach (far signals need a relay node), and a red pulse to tap before it eats a line. A ghost hand and a one-line hint show the move only when the player is stuck. Rules in src/signal/rules.ts with tests, SIGNAL.md has the stages and numbers, an e2e test drags a line on desktop and phone
2w ago
telemetry.spec.ts
Runs are recorded in the browser (TELEMETRY.md step 2). For a signed-in player who switched a kind on, src/telemetry.ts (no DOM) records a session (build, seed, task, device, when, how it ended, how far, its marks in game seconds as the survey keys them plus v2 and each milestone, and its state hash at the end), batches of actions, a snapshot each game day (money, compute, machines, sites, fronts, the top exposure and the state hash, with how many actions were done at its step) and screen events (cards and pages opened, tips seen, errors, frame times a minute). main.ts ticks it each frame and saves it when the game saves; the screen feeds it through screen(). Every record is ATProto data, so no floats: numbers are rounded and a batch keeps its actions as JSON text. Batches close at the end of a game day or when full, a few kilobytes each. Actions switched on mid-run take the run's whole list, so the session stays replayable. A reload goes on with its session and drops what was kept past the save; the save now keeps the build its run began on, and a run loaded on a new build goes on as a stretch that can't be replayed. src/telemetry-store.ts keeps the records in IndexedDB (memory if it won't open, opened only once something is kept), 20 MB at most with the oldest sessions dropped first, each marked sent or not for step 4 (pending, markSent). replay.html lists the runs kept on this device and plays one back on the game's map, read-only, with play, speeds, a step slider and the snapshots marked and checked as it passes. The You page's Share part says what is kept and offers Watch a run again, Download my runs and Delete what's kept here. vite.config.ts bakes the commit in as __BUILD__. scripts/runs.ts reads the recorder's shapes: actions as text, batches placed by their index in the run, and a snapshot checked once its count of actions is done. Found on the way: drawing the map wrote a vault's notes into the state, so a replay that drew nothing ended elsewhere; reading a note writes nothing now. Tests: nothing recorded with every kind off; with every kind on the actions kept replay to the same hash and pass every snapshot; a kind switched on mid-run; a reload cut back to its save; a new build starting a stretch; a new game and being caught ending a session; the cap; pending and markSent; record sizes and whole numbers; the reader reading what the recorder keeps. E2e at both sizes: record, reload, play back to the end with every snapshot matching, scrub back, download, delete.
5d ago
touch.spec.ts
The phone's card is a two-height sheet: it opens at half the screen and scrolls inside; a tap on its bar or a drag up raises it to full under the top bar, a tap or a drag down lowers it, and from half a drag down closes it; the chosen height holds from tab to tab and the camera frames above it
8h ago