Open Source on GitHub

A django starter for internal apps that leverages the include admin theme and components.

v0.30.1 2 stars 1 forks 12 issues

Changelog

Unreleased

  • 05de70f: release: v0.30.1 — demo pages in a deletable apps/showcase, call_stats' dataset extensions upstream, downstream merge fixes

v0.30.1

  • 1f2562a: release: v0.30.0 — dashboards an AI agent can build, card types, linked cards, sharing, app-shipped defaults

v0.30.0

  • 2f3f53a: fix(dashboards,datasets): a one-ended link channel is said; groups read their choice labels
  • 6a60d55: fix(dashboards): a copy of a dashboard shared with you saves; another's hand-entered metric reads restricted
  • 0044023: fix(dashboards): a member's layout can't name a staff-only dataset
  • a74d248: fix(api): a REST write names the keys it didn't take
  • 99400e8: fix(dashboards): archive and restore over REST and MCP
  • 4a10dfb: fix(dashboards): a member finds people to share with by exact username; a person is told once
  • b0afead: fix(dashboards): an all-time trend draws every bucket; a gauge has its number in a snapshot
  • 732a7be: style(dashboards): the header's controls wrap to the right edge; stacked, they size to themselves
  • 0945626: docs(changelog): the OpenAPI field descriptions
  • 0cb7721: fix(api): OpenAPI describes each field with its form help; a layout says its shape
  • 1c80cf0: docs(dashboards): the docs audit — tool descriptions, help pages and skills match the code
  • 139289e: fix(dashboards): sharing says when the person can't read the cards
  • 3ef2bb7: fix(dashboards): a menu link to /\host isn't a page of this site
  • 7c8d53f: fix(dashboards): an app that ships default dashboards no longer turns the framework's tests red
  • b98a6ba: fix(dashboards): what an agent sends is checked, and bookkeeping saves don't 500
  • ba636da: fix(heartbeat,feeds,webhooks): a check never started isn't an outage; unattempted deliveries alert
  • 0e1780b: fix(settings): SMALLSTACK_ACCOUNTS_EMAILS_INLINE is read from the environment; an empty EMAIL_TIMEOUT boots
  • 869a336: style(dashboards): the header's controls keep to a column, and its buttons match
  • 1c3fd78: fix(ui): nothing pushes a phone-width page sideways
  • 8251551: merge: last round's unmerged fixes (polish/ops-simplicity) onto main
  • 5a6832e: fix(dashboards): count adopted rows in seed_dashboards' summary
  • 6b96b5d: feat(dashboards): app-shipped defaults, page tags for every piece, docs review
  • 056fe80: feat(dashboards): confirmations, admin-only addresses, start from a metric
  • 4dec563: docs(tasks): fix the background-task imports and the aenqueue example
  • 7ae48af: feat(feeds): fetch feed sources in parallel
  • 5ca3538: feat(webhooks): give outbound deliveries their own queue and worker
  • 372e4cf: fix(accounts): queue invite and sign-in-code emails; time out SMTP
  • 1a8360a: feat(heartbeat): probe endpoint monitors in parallel
  • 694eef7: refactor(mcp): make the bundled tool handlers plain functions
  • f306e12: feat(dashboards): linking fields in Add card; keep the card menu clear of headings
  • fdb9a15: feat(dashboards): linked cards, calendar days as slices, and a round of UI and table fixes
  • cf16e3a: feat(dashboards): share a personal dashboard; a note's look; compact option controls
  • 1719687: feat(dashboards): scripted cards mount everywhere, own option editors, card-type API doc
  • 572d1d7: feat(dashboards): bar chart, gauge, table and menu cards
  • 15293ce: feat(dashboards): a chart filters a dataset of its own; a metric goes on a single stat
  • 204a450: feat(dashboards): help on every page, card editing in place, unique copies, tags and addresses
  • 484d47b: feat: help bubbles, number steppers and a logo that follows the palette
  • 1560e01: feat(dashboards): duplicate a report, goal list, dashboard or playlist
  • c82c212: feat(dashboards): duplicate a metric or a card
  • 5d9a0c3: feat(dashboards): archive a card from its builder
  • 493c93d: feat(dashboards): tags and archiving on every owned row
  • aab8db8: feat(dashboards): where each metric is used, and "you already have this"
  • e7f921f: fix: the quick date presets and the periods cover the same days
  • 01a5121: style(dashboards): the Make-a-metric modal is form-sized, the number first
  • 4749907: style(datasets): the keep-as-card choices sketch their card from the roll-up
  • ed2607d: style(datasets): the browser's row count reads as a stat
  • 51f2d7c: feat(datasets): filters apply as they change; Make a metric in a modal
  • 3b4706d: feat(dashboards): a Trends button on every grid row; the week grid is tighter
  • 02a3660: style: two-row pager everywhere; the browse keep links carry the accent
  • 7bd5bbb: fix(datasets): browse header keeps the CSV card top right; pager laid out in two rows
  • 19e1dcb: feat(blog): the delivery page reads as a receipt
  • dacd1a8: feat(dashboards): save a filtered browse as a metric, a roll-up as a card
  • 409bd8c: feat(datasets): More conditions on the dataset browser
  • ca41f1b: refactor(datasets): the filter-tree editor is a shared script
  • 3373543: fix(dashboards): a trend's points are numbers
  • 6c14a38: fix(dashboards,blog): a trend takes a rate; an option nothing reads is refused
  • a914caf: fix(dashboards,calendar,mcp): what a capture, a target and a tool say is what happens
  • bc59d8a: feat(dashboards): pie and ranked charts; the components page shows the cards
  • ab1a9f3: feat(dashboards): a goal can have its own target for each cadence
  • 6f81dbc: feat(dashboards): snapshots at any cadence
  • b238a39: feat(calendar): repeating events
  • b19242e: feat(dashboards): print goal lists, weeks and reports
  • 10e0c20: feat(dashboards): metrics can be rates or entered by hand
  • 9255d4b: docs(changelog): say what was measured for the saved-view name
  • a42160a: fix(dashboards,calendar): a switched-off feature has no MCP tools
  • 8b39457: fix(dashboards,calendar,docs): second round from the cold-start agent and a docs audit
  • bb27746: test(dashboards): a placed card is beside or below, not always below
  • 348773f: fix(dashboards,calendar): cards fill the row; chip times leave room for the name
  • 16144b7: fix(dashboards,mcp): what an agent asks for is what it gets
  • 5789fc9: fix(docs): point help links at /smallstack/help/
  • 9614f60: fix(dashboards): the overview only links cards you can open
  • 9625d66: feat(dashboards): metrics, dashboards, reports, playlists, goals and weekly snapshots
  • 7bc45a2: fix(security): drop 'unsafe-inline' from script-src; no inline CSS or JS in templates
  • d20fbb7: feat(framework): page sizes, case-insensitive sorting, filter trees, CRUD hooks
  • b46c8f4: feat(calendar): a calendar on any page — {% calendar_card %} + a dashboard card
  • a722177: fix(blog): /smallstack/blog/ lands on the posts list instead of 404
  • 9b74682: fix(datasets): one form for Apply + Roll up; dark native date pickers
  • 7ea2c2c: release: v0.29.0 — calendar entry pages, in-place day selection, .ics subscriptions

v0.29.0

  • d75caf5: feat(calendar): own design for the entry and view pages; .ics subscriptions work
  • a5a5b05: feat(calendar): day selection keeps your place; picker matches the grid height
  • 552bfa4: release: v0.28.0 — calendar app, agent discovery, starter-site pages

v0.28.0

  • 57cf053: feat(website): Datasets & Calendars, Blogs & Newsletters, and Prompts pages
  • 08c2d8e: feat: agent discovery (AGENTS.md, Agent Skills, llms.txt) + the write-hook safety net
  • 8ea1200: docs(help): "Prompting a coding agent" — copy-ready prompts for the first tasks
  • bdba82e: feat(calendar): the Events calendar — the one a person types into
  • 5d89d35: feat(calendar): provider-backed calendars, cancelled/image, colour pins, work-week default
  • 1fd3e37: chore(deps): Pillow floor 13.0 (fifteen 12.x CVEs), refresh the lockfile
  • c052276: feat(scheduler): the day-range board on the jobs page
  • e918b2f: feat(blog,runbook): the day-range board on posts, issues and runbook documents
  • 82a7e62: feat(calendar): reusable components — template tags, partials, RangeBoardDisplay
  • 1854e3a: docs(changelog): record the ICS UID fix carried in 3188819
  • 3188819: feat(calendar): 30/60/90-day board, weekends toggle, grouped day column, views dropdown
  • db577f6: fix(api,mcp,openapi): advertise MultipleChoiceField as an array of choice keys
  • 65546d4: feat(calendar): calendar datasets, a merged month grid, saved views, events + ICS API
  • 74a6661: release: v0.27.1 — paged dataset browser index

v0.27.1

  • 17062e9: feat(datasets): page the browser index, 10 per page by default
  • 326ebeb: release: v0.27.0 — bundled datasets, a dataset browser, and row links

v0.27.0

  • b05c276: fix(activity,api,datasets): distinct() that wasn't, and the one staff table that didn't resize