Releases: timqi/pier
Release list
v0.4.1
Changes since v0.4.0:
- 0.4.1
- Task-run contract on the role prompt; the message names only the run and its reader
pier update stops the service and writes a copy of the database to
~/.pier/db/backups/ before installing. Schema migrations are one-way.
See docs/deploy.md.
v0.4.0
Changes since v0.3.1:
- 0.4.0
- docs: CHANGELOG 0.4.0; README names when a release is minor and when it needs a CHANGELOG entry
- Changes to package.json
- Open items read the store, not a listing's window and cap
- Stamp the users' language on a lead's milestone and on restart resumes
- tasks: a clipped result keeps its head and tail, in one helper
- drawer: the rows open the status panel, the counts only word the chip
- config sync: the contract says what one atomic file replacement and a catchable rollback cover, and that the next sync repairs a process cut between them
- Resume by session id, one boot order, one owner per saved queue
- main: requests that land before the boot's unlock wait for it
- Changes to drawer.test.ts & drawer.ts
- main: a resumed run's downtime is dated by the stop's turn rows; the doc says who starts a queued row
- Stop and resume: the stop sequence, the turn resume, the drain removed
- Open items: one status reading, only 'waiting on you' needs you
- tasks: the stop's hold on a settling run moves from agent.ts to execution.ts
- Stop and resume: task runs resume on their own row; pause, drain and SHUTDOWN leave tasks/
- docs: the updater sentence reads as one clause
- docs: describe stop and resume behavior
- Stop and resume: router turn-start and stopping seams, tasks resumeAfterRestart seam, unverified points checked
- Stop and resume: the restart system-input origin and its text
- Design: stop and resume — no safe-point wait, unit unchanged, agent runs only
- Design: stop and resume — systemd owns the restart, Pier the safe point and the resumption
- Squash commits from lang-stamp-every
- Squash commits from callback-lang
- Squash commits from runs-filter
- Squash commits from approved-callback-state
- Squash commits from im-abnormal-run-notice
- Squash commits from badge-tidy
- Squash commits from model-tier-data
- Squash commits from run-model-badge
- Squash commits from goal-dispatcher
pier update stops the service and writes a copy of the database to
~/.pier/db/backups/ before installing. Schema migrations are one-way.
See docs/deploy.md.
v0.3.1
Changes since v0.3.0:
- 0.3.1
- docs: CHANGELOG 0.3.1 dated
- web: the shell cache test stands in its own index.html, so it passes on a tree vite has not built
- tasks, core: the seed heading names what it shows and hides; the stop rule's deletion is scoped to what the run did not create
- tasks, core: a run decides reversible choices itself and reports in two parts; the seed lists only runs that still need the head
pier update stops the service and writes a copy of the database to
~/.pier/db/backups/ before installing. Schema migrations are one-way.
See docs/deploy.md.
v0.3.0
Changes since v0.2.0:
- 0.3.0
- docs: CHANGELOG 0.3.0 dated
- core: a marker tag quoted in a code span no longer swallows the real marker after it
- tasks: a run shutdown aborts ends interrupted, not cancelled
- pier search: pin the live 'flaky' reply — a match only in the button row leaves no markup in the snippet
- pier search: clip titles to 30 chars, cut snippets from markup-free text
- tasks: break latestRunForTarget's same-millisecond tie by insertion, not random id
- docs: child threads and pier search in the CHANGELOG; the leftovers plan closed
- search: the verb's argv and the route's host live in core/search.ts
- core: the front cut drops whole lines and names what went
- core: notes and exchanges keep their end when cut
- search:
pier searchover the session index from the shell - core: cut each seed part to its budget
- slack: move sharedBlock/sharedThread into slack-thread.ts
- tasks: one ledger read for every lead in the open items
- web: buttons survive a failed turn on reload; path checks in slices
- tools: a switched-on tool the last sync failed says why on its row
- docs: planned leftovers — the build plan for what 0.2.0 and child threads left
- dispatcher: tighten the daily-note rule
- Squash commits from multi-entry-conversation
- Squash commits from status-panel-layout
- Squash commits from cleanup-0.2.1
pier update stops the service and writes a copy of the database to
~/.pier/db/backups/ before installing. Schema migrations are one-way.
See docs/deploy.md.
v0.2.0
Changes since v0.1.14:
- 0.2.0
- docs: CHANGELOG 0.2.0 dated; README and CHANGELOG say Pier, never head
- docs: 10's role table row is one line, architecture says what settings.ts imports from core/types, 05 carries no ceiling of its own, AGENTS' core row names /skills and the skill-prefix rewrite
- docs: 03 system-input rows name the glyphs the icons actually draw
- docs: 08 lists the schedule verbs on /task; 09 drops the removed continuous switch
- docs: 06 — any user message is editable, and the raised shadow is the composer's and palette's
- docs: 05 names what boards.ts really imports
- docs: 03 drops standDownShadowed — the not-loaded verdict is computed at list time
- docs: 10 names the head's real ⋯ menu and its home-chat key
- docs: 04 says ChannelControl is built in main.ts, not runtime.ts
- docs: architecture map lists every file at HEAD, all four socket routes, the real command parse and receipt sweep
- docs: 04 names the home DM exception, the full ChannelControl and the real receipt sweep
- docs: 11 home chat matches the built code — isHome covers threads, no build order or 'as today'
- web: comments name no deleted file or old behaviour — the why each line still owes
- channels: delete Chains.oldest and ConversationStore.boundSessions — their callers went with Telegram and the web ↔ IM handoff
- docs: CHANGELOG 0.2.0 draft — what the continuous conversation, the home chat and the one-bar web change for an operator
- deploy: ~/.pier/home in backups, passkeys log area, the Settings-header version badge
- pier-help: the head's home and callbacks, /new and /stop on the head and home chat, no 'IM is unchanged'
- readme: the conversation, its head and home chat explained; status line without a stale version; Settings tabs and the version badge as they are
- src: drop export from 93 declarations only their own module uses — the module surface names only what another file imports
- lark: a panel card in the home chat is stale, a topic tap there is the head's
- Squash commits from slack-conversation
- Squash commits from files-md-render
- config-sync: version gate, source-owned fields, no boot sync
- Squash commits from path-link-cwd
- web: /api/fs/file frameable by the same origin — the Files viewer shows a PDF inline; attachment PDFs open in Files again
- web: attachment PDFs keep their own tab — X-Frame-Options: DENY bars every frame, the Files viewer's included; FilesSession unexported
- web: one Files dialog for Browse files, Agent → Browse files and chat file refs
- Squash commits from tools-in-packages
- Squash commits from status-one-panel
- Squash commits from docs-naming-cleanup
- pier-help: the command table's one-line copy, since the package ships no docs/design
- channels: one command spelling, /word or %word
- Squash commits from run-card-session-link
- Squash commits from no-key-error
- web: a panel closes on the user's scroll, not the page's
- web: the Status panel shows /status's own text
- web: steps, callback and run rows share one chevron column
- Main conversation: named Pier; each new head starts on the Settings defaults
- im-conversation: review — the head's key moves cleanly, chat commands wear no 👀
- web: run cards fold to one line like callback rows — the background-run card built its head without
expandsand clamped the prompt with its own "Show full message" toggle, so it never joined the system-row fold - AGENTS: adapter ceiling 450 — the home chat's second target on every path
- im-conversation lark: the home chat's adapter, the runtime split, the head's key
- docs: pier-help keeps the panel facts beside the prefix rule and the home chat
- docs: clarify IM commands and home chat
- im-conversation: wave 1 integrated — composer lists /skills; a one-letter word is never a skill spelling
- im-conversation core: % prefix, a chat's key on MainChain.send, /skills, skill prefixes, note labels
- channels, web: the home flag — store, route, Console switch, control
- im-conversation: seams — ChatConfig.home, CHAT_COMMANDS.skills; the design doc
- web: the phone bar's title shrinks instead of wrapping — a long child title pushed ⋯ to its own line and the meta row out of the bar onto the transcript
- docs: restore scheduled task and board interaction rules
- web, agent: drop the routes nothing calls — POST /api/sessions with its nascent rows, /rename and /compact with their...
- web: the conversation's bar shows only the used context; Session info reads it against rotateAt
- web: needs you = a design awaiting Finalize or a turn the operator started
- core: queue promotion recovery goes — the in-memory failed-batch ledger, the uncertain hold that paused automatic promotion, and the ACK flow (route, recovery panel, queue-recovery event, snapshot fields); a failed promotion now reports the error with the original text to the session via reportTo (the hub gets it whole, IM through cut 600) and keeps nothing
- tasks: the chain ↔ tasks callback ring goes — ChainDeps' sessionOf/roleOf/designs/hub callbacks and chain's own hub subscription on the head (watch/unwatch); open items move to src/tasks/open-items.ts because the ledger join, the worker count by state and the markers table are task-run vocabulary TaskService already holds (ledger, openDesigns, store.roleOf/getRun), and the head's markers are written from TaskService's existing onTurnEnd listener; tasks +109 is core's −103 arriving with its reads direct
- Settings: Tasks and Boards tabs, restored lean from f470e3d^
- docs: Budgets — core's row names what it holds once open items are tasks' and the Console seam agent's; agent 2.8k, the Console's config seams declared on the side that answers them
- agent: the chat-surface prompt and surfacePrompt leave core/reply.ts for agent/roles.ts beside DISPATCHER and LEAD — a contract injected into every session is not presentation; reply.ts keeps one line pointing at it
- agent: the Console's Pi-config seams (config, packages, providers, config sync, web auth) and the ProviderSetup validators leave core/types.ts for agent/types.ts, declared by the side that answers them — no SDK, no node:*, so any area may import it; core/types.ts is the conversation seam only
- core: a match beginning outside code is prose — an open-item marker whose text holds a code span was dropped by the overlap rule
- channels: the IM note digest leaves core for lines.ts noteBody, where slack and lark now quote and label a note once — how much a chat shows is a platform fact, so Channel.notify gets the whole text. Net +11 source lines: the digest moved whole, the error exemption core had by position is now a branch, and the pair it replaces was one line per adapter
- core: one code-skipping scanner — reply.ts's unfenced/FENCE and cjkFriendly's stash were copies of inbound-file's replaceOutsideCode, which also knows code spans; chain's localDate is identity's day, router's truncate is cut
- core: Attached.stateSince and Router.stateSinceOf go — nothing reads them; the UI's "idle since" they claimed to feed does not exist
- docs: core-slim design — the net-deletion plan for core/ and its wiring
- web: the conversation's context chip reads against the rotation threshold
- drop the web ↔ IM handoff, the working set and the close route
- web: the conversation's bar reads only its context, and ⋯ → Status shows /status as one card
- docs: remove stale rail terminology
- docs: 12 links the drawer section that exists and says the order the code keeps
- core: two comments stop naming the deleted rail
- web: a settings write re-lists nothing — the switch it re-listed for is gone; the close refusal and the open route stop naming the rail
- web: the session list is ordered once where it lands, not again per surface; comments and exports the deleted rail, chip and create left behind go
- web: the status chip's name is its count — an aria-label read "In progress" over "2 running · 1 needs you"
- web: an error takes back only this tab's own optimistic streaming — between two turns of one run the server's streaming stands
- test: the chain rig follows main's sessionOf dep and the switch's absence
- docs: describe the one-bar web workbench
- web: the Settings head keeps title and ✕ on the phone's first line, and a folded system row stays one line
- web: the bar's running chip goes — the status chip is the one count of what is in flight, and the drawer the way to it
- web: one bar and the In progress drawer in place of the rail
- web: the composer's continuous dep is required, and a prompt refused before its turn clears the streaming state
- web: drop the -webkit-backdrop-filter copies that trail the standard property
- core: a lost head leaves main_chain — with no transcript on disk it rendered 'unknown session' above the head on every Conversation load; the three added lines are the delete, in one transaction with the new head's row
- settings: delete the continuous switch — the instance is always the continuous conversation; its routes always answer, a role'd session always gets the child cap, and the chain is a required dep of the web server and TaskService
- web: seeds, callbacks and delegations fold to one line that opens to their card; a failed run's reason stays on the line
- docs: 12-ui-shape — one column, one bar, In progress drawer; folds in Phase B
- core: /status follows an item's session, not its run; lists only untracked live runs
- core: speaker header carries lang= on a language change
- agent: tell every session not to cd into its own cwd
- web: a completion row is picked on pointerup, so a finger scrolling the list past eight rows fills nothing
- docs: 11 §Open records no migration for definitions saved with none
- docs: 09 §list no longer credits the deleted Console row
- web: the Console's one row needs no Map of rows, and the composer's exact-word test needs no cast
- tasks: store.listRuns drops the offset only the deleted /api/tasks/:id/runs paging passed
- docs: three sentences still named tasks/routes.ts, /api/ta...
v0.1.14
Changes since v0.1.13:
- ci: the tag job builds before it tests, like CI
- 0.1.14
- ci: build before test
- deps: pi 0.87.1
- web: a missing bundle is not cached for a year
- web: the shell is no-store
pier update stops the service and writes a copy of the database to
~/.pier/db/backups/ before installing. Schema migrations are one-way.
See docs/deploy.md.
v0.1.13
Changes since v0.1.12:
- 0.1.13
- deps: pi 0.86.1
pier update stops the service and writes a copy of the database to
~/.pier/db/backups/ before installing. Schema migrations are one-way.
See docs/deploy.md.
v0.1.12
Changes since v0.1.11:
- 0.1.12
- web: touch log rows pack at a 28px floor
- web: the transcript's fade clears the heading's inset
- boards: the container is the reading measure, wide on a desktop
- boards: the skill says illustrations are allowed, and how
- channels: a chat says which bot it belongs to, and the Console can remove it
- web: chat log rows on touch take 36px, packed, in a taller box
- fix(boards): align responsive layouts and compact authoring guidance
- web: chat steps share the run cards' status vocabulary
pier update stops the service and writes a copy of the database to
~/.pier/db/backups/ before installing. Schema migrations are one-way.
See docs/deploy.md.
v0.1.11
Changes since v0.1.10:
- 0.1.11
- console: a path field wears the shared control skin
- channels: a DM belongs to the bot that opened it
- panel: a directory button is its basename
pier update stops the service and writes a copy of the database to
~/.pier/db/backups/ before installing. Schema migrations are one-way.
See docs/deploy.md.
v0.1.10
Changes since v0.1.9:
- 0.1.10
- handoff: only a DM can continue a web session
- boards: serve every board on a signed 8-hour prefix, never on the cookie origin
- web: upload attachments on attach, not on send
pier update stops the service and writes a copy of the database to
~/.pier/db/backups/ before installing. Schema migrations are one-way.
See docs/deploy.md.