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